在多个varchar列上优化LEFT JOINS ORDER BY

时间:2010-09-04 10:44:45

标签: mysql performance sql-order-by left-join

我尝试优化对多个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;

ORDER BY语句似乎耗费了大量时间(约100毫秒),适用于约6000张门票,约40个客户和约400个地点的小型数据库。

我已经减少了varchar列的长度,这显着加快了查询速度(加快了2倍)。

您是否有任何优化查询执行时间的解决方案?

非常感谢!

1 个答案:

答案 0 :(得分:2)

您应该在customers.namelocations.name列上添加索引。

此外,请确保将customers.idtickets.customer_idlocations.idtickets.location_id全部编入索引。