就性能而言,是否有任何理由将(例如使用 JOIN)像下面这样的简单查询组合成一个?
media_id 和 user_id 是索引
我似乎找不到答案,并且过去合并了类似的查询,最终得到了更长的总体运行时间。
编辑:我总是被告知查询越少越好,这适用于此吗?
0.0028 SELECT *
FROM `z_ratings`
WHERE `media_id` = 18610
AND `user_id` = '1'
0.0013 SELECT *
FROM `z_watchlist`
WHERE `media_id` = 18610
AND `user_id` = '1'
0.0016 SELECT *
FROM `z_favourite`
WHERE `user_id` = '1'
AND `media_id` = 18610
0.0021 SELECT *
FROM `z_watched`
WHERE `user_id` = '1'
AND `media_id` = 18610
最佳答案
这取决于您将如何准确地组合它们。
如果使用 JOIN 或 UNION 将它们组合成一个语句,则需要考虑索引,并检查与简单查询相比,组合查询如何获取数据。
您也可以使用“;”将语句连接到语句 block 中,或者将它们打包到存储过程中。在这种情况下,您实际上可以通过减少对服务器的调用次数来节省时间,但随后您可能需要更复杂的逻辑来分析结果。
关于mysql - 您是否应该将多个简单查询合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707347/