mysql - 如何使具有许多 JOIN 语句的 SQL 查询更短、更快?

标签 mysql sql

我有很多 INNER JOINS 要做,实际上需要很长时间才能执行。我还有其他方法可以做到这一点吗?更快,也许更短?

SELECT fermat.*,  .... -- around 17 other tables FROM fermat 

INNER JOIN bla_bla on ....
-- around 17 other INNER JOINS

最佳答案

简单的答案是否定的。如果您需要使用所有表,那么您需要连接所有表。因此,实际上没有任何方法可以大幅提高查询性能。我在您的查询中看到的一个小变化是仅从表中选择您需要的列,并在不使用所有列时避免使用 table.*

但是,优化表格可能会有所帮助。为了提高性能,您可以确保在您要加入的每一列上都设置索引。

由于我们无法看到您的整个查询,因此其他地方可能存在瓶颈。在 MySQL 中,您可以执行 EXPLAIN SELECT... 显示您计划的执行路径。这在调试或尝试查找瓶颈时非常有帮助。

关于mysql - 如何使具有许多 JOIN 语句的 SQL 查询更短、更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376454/

相关文章:

python - 内存高效的内置 SqlAlchemy 迭代器/生成器?

mysql - 创建一个存储过程,在输入该行的 ID 时删除该行

java - 加密难题

php - 使用 php 将多行插入到表中

sql - 如何将图像字段导出到文件?

MySQL- 平均 15 分钟间隔

sql - 如何按列分组

php - 无法让 PHP lastInsertId() 使用此设置

php - 如何从学说中的连接表中检索结果

php - 提交php表单后如何显示结果