Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему filesort? / 6 сообщений из 6, страница 1 из 1
17.12.2018, 14:31
    #39748965
eurobax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
Моя логика сломалась, или может я уже что-то не понимаю.
Решил выдавать последние по времени 10 заявок работника.

В таблице tickets есть индексы: owner, owner_date, date, worker

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
explain
SELECT 
	tickets.*
FROM tickets
WHERE tickets.owner="f4b1fa15"
	AND tickets.worker="727c852a"
ORDER BY tickets.date							
LIMIT 10



Дает результат на скрине. А именно: "Using intersect(worker,owner); Using where; Using filesort"
Какого фига filesort, если есть индекс?

Если убрать ORDER, то все в порядке: "Using intersect(worker,owner); Using where"

Подскажите, возможно, что-то очевидное я упустил?
...
Рейтинг: 0 / 0
17.12.2018, 14:43
    #39748973
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
eurobaxКакого фига filesort, если есть индекс?И какой же, позвольте узнать, индекс? по овнеру и дате? так он тут вообще никаким боком...

Код: sql
1.
CREATE INDEX idx ON tickets(owner, worker, date)
...
Рейтинг: 0 / 0
17.12.2018, 15:56
    #39749020
eurobax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
Akina,

Теперь понятно.
Если в запросе будут еще фильтры по другим полям заявок (+ разное сочетание полей), то все их в индекс выносить бестолково?
Получается, подобные запросы с GROUP BY в таких случаях всегда filesort?
...
Рейтинг: 0 / 0
17.12.2018, 16:00
    #39749021
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
Плодить кучу индексов на каждый запрос - штука, наверное, не очень осмысленная. Надо искать баланс, и оптимизировать только критичные запросы.

А каким боком тут группировка, я вообще не понял.
...
Рейтинг: 0 / 0
17.12.2018, 16:32
    #39749039
eurobax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
Akina,

Группировка необходима чтобы извлечь последние по времени (поле date) 10 записей.
...
Рейтинг: 0 / 0
17.12.2018, 16:38
    #39749043
eurobax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему filesort?
Akina,

Опечатался, не GROUP конечно, а ORDER
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему filesort? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]