如何优化 MySQL 中缓慢的 JOIN 查询?

问题描述 投票:0回答:1

我正在使用 MySQL 中的两个大表,并且尝试使用 JOIN 查询检索数据。但是,查询需要很长时间才能执行,尤其是当数据集增长时。这是我正在运行的查询: 代码

SELECT users.name, orders.order_date, orders.total
FROM users
JOIN orders ON users.id = orders.user_id
WHERE orders.total > 100;

两个表都有超过100万行,我已经在orders表中对user_id列建立了索引,但性能仍然很慢。我可以应用任何其他优化来加快速度吗?

我使用 MySQL 的在线 SQL 编译器(SQLCompiler.live)测试了这个查询,这对于快速运行查询很有用,无需设置本地环境,但我想知道如何在实际生产中优化它设置。

如有任何提示或建议,我们将不胜感激!

sql mysql performance join indexing
1个回答
0
投票

您可以通过

ON
语句中的整个条件检查进行一些优化。

另外,如果您有很多客户,订单量可能不会超过100,我建议您先设置

orders.total > 100
条件。

SELECT users.name, orders.order_date, orders.total
FROM users
JOIN orders ON orders.total > 100 AND users.id = orders.user_id;
© www.soinside.com 2019 - 2024. All rights reserved.