我尝试优化对多个 varchar 列进行排序的 MySQL 查询:
SELECT *
FROM tickets
LEFT OUTER JOIN customers ON customers.id = tickets.customer_id
LEFT OUTER JOIN locations ON locations.id = tickets.location_id
ORDER BY customers.name, locations.name;
对于包含约 6000 张门票、约 40 个客户和约 400 个位置的小型数据库,ORDER BY 语句似乎花费了大量时间(约 100 毫秒)。
我已经减少了 varchar 列的长度,这显着加快了查询速度(快了 2 倍)。
你们有优化查询执行时间的解决方案吗?
非常感谢!
最佳答案
您应该在 customers.name
和 locations.name
列上建立索引。
此外,请确保 customers.id
、tickets.customer_id
、locations.id
和 tickets.location_id
> 均已编入索引。
关于mysql - 在多个 varchar 列上优化 LEFT JOINS ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641895/