mysql - 您是否应该将多个简单查询合并为一个?

标签 mysql

就性能而言,是否有任何理由将(例如使用 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/

相关文章:

Mysql 选择某事作为另一事

php - 在 PHP 中使用 while 循环从 MySQL 表中获取数据

mysql - 在 mySQL 中寻找此 IF 语句的解决方案

mysql - 使用什么嵌入式数据库进行无缝MySQL>(嵌入式数据库)转储

MySQL - 对当前行执行 COUNT(*)

php - mysql_fetch_assoc 覆盖数组

mysql - 使用 last_insert_id() 插入重复键更新

php - hasManyThrough关系返回错误的SQL语句

java - Primefaces 5.0 图表 - 如何完全从数据库值动态创建图表模型和系列

php - 包含 AND 子字符串条件的 WHERE 子句