我们有一个用户可以运行的报告,需要从5个不同的服务中选择记录。不是的,我使用UNION将所有的表组合到一个查询中,但是有时候,它对服务器来说太多了,它崩溃了!我优化了一些零碎的查询(where和表连接),从那以后再也没有发生过崩溃,但报告仍然需要很长时间才能加载(即查询非常慢)。
问题是,如果我为不同的服务类型创建5个临时表,然后从所有临时表中进行选择,mysql是否会执行得更快、更优化?还是有不同的想法?当然,我可以只使用5个单独的select,然后将它们组合到代码中(php)。但我想这会导致报告加载得更慢...
有什么想法吗?
发布于 2010-12-21 23:28:01
通常,速度的限制因素是数据库,而不是PHP。我建议运行单独的查询,让PHP进行组合,看看这样做是否更快。如果您没有将所有数据存储在数组中或进行其他繁重的处理,我怀疑PHP方式要快得多。
(这实际上是一个评论,但还没有这些权利。)
https://stackoverflow.com/questions/4498327
复制相似问题