我尝试优化对多个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倍)。
您是否有任何优化查询执行时间的解决方案?
非常感谢!
答案 0 :(得分:2)
您应该在customers.name
和locations.name
列上添加索引。
此外,请确保将customers.id
,tickets.customer_id
,locations.id
和tickets.location_id
全部编入索引。