我正在寻找一些争论,为什么将连接拆分为单个查询会更好/更差,然后立即运行所有连接的单个查询。我在PHP / MySQL环境中工作。
假设所有表都正确配置了索引,我确信多个查询将比单个查询慢。
无论如何,当我正在寻找专业人士和骗子时,我会在下面列出我发现的内容,并且会对其他人的反馈非常感兴趣。
单一查询:
[pro] Mysql能够优化查询
[pro]减少网络流量
[pro]使用mysql
更容易排序和限制结果[pro] MySQL可以做它擅长的事情
[con]大查询
多个查询:
[pro]较小的查询
[con]在缩小结果时需要循环遍历大量的结果集(PHP)
[con]分页变得痛苦
[con] PHP中需要更复杂的代码
我的感觉是单个查询更好/更快但也可能取决于具体情况。这些表很简单,我们在交叉表上也有一些父/子连接和一些匹配的查询。最大的表是大约20万条记录。
另一个让我在这里的想法是MySQL连接在关于过滤记录时是可以的,但是当您拥有产品和产品类型时,产品类型将加载另一种机制,该机制将缓存所有产品类型,例如这样你也不需要加入产品类型。