Оптимизировать LEFT JOINS ORDER BY на нескольких столбцах varchar - PullRequest
0 голосов
/ 04 сентября 2010

Я пытался оптимизировать 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 раза быстрее).

Есть ли у вас какие-либо решения для оптимизации времени выполнения запроса?

Большое спасибо!

1 Ответ

2 голосов
/ 04 сентября 2010

У вас должны быть индексы для столбцов customers.name и locations.name.

Кроме того, убедитесь, что customers.id, tickets.customer_id, locations.id и tickets.location_id проиндексированы.

...