Да, нормально, filesort это просто сортировка. Появляется не только при ORDER BY FIELD, а почти при любом ORDER.
Вариант с «сортировкой» в php быстрее, но это микрооптимизация. 1000 запросов — это 33 сек. на sphinx и 6 на запрос из mysql. Есть и другие запросы, фреймворк и т.п. В общем случае, смысла в такой оптимизации нет.
В EXPLAIN не «Using temporary», а «Using filesort», т.е. проблем не должно быть.
Посмотрел сейчас на таблице >10M записей: поиск в sphinx 0.033 сек., потом запрос к mysql — 0.006. Т.е. по сравнению с поиском запрос почти не заметен.
Допустим, sphinx возвращает набор id (3,7,5). Тогда вы пишете запрос SELECT… FROM test WHERE id IN (3,7,5) ORDER BY FIELD (id,3,7,5) и получаете строки в нужном порядке.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.