Я попытался оптимизировать MySQL-запрос, который сортирует несколько столбцов varchar:
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 раза быстрее).
Есть ли у вас какие-либо решения для оптимизации времени выполнения запроса?
Большое спасибо!
У вас должны быть индексы в столбцах customers.name
и locations.name
.
Кроме того, убедитесь, что customers.id
, tickets.customer_id
, locations.id
и tickets.location_id
индексируются.