Этот запрос на веб-сайте OctoberCMS, созданном с помощью Laravel. Выполнение занимает около 580 мс! В чем проблема? и как его ускорить?
SELECT *
FROM system_files
WHERE system_files.attachment_type = 'Me\Articles\Models\Article'
AND system_files.attachment_id = '235017'
AND field = 'image'
AND system_files.attachment_id IS NOT NULL
ORDER BY sort_order ASC
LIMIT 1
В таблице около 220 000 записей, и это индексы в таблице:
field
attachment_id
attachment_type
Уже есть 3 индекса, я обновил вопрос с ними.
Это общая база данных или она находится под большой нагрузкой?
Вам не нужен system_files.attachment_id is not null, так как вы уже отфильтровываете его с помощью system_files.attachment_id = '235017'. Если это поле не является строкой, вы можете изменить его на system_files.attachment_id = 235017.
Вызывает ли ваше предложение ORDER BY сканирование таблицы?






попробуйте добавить индексы в поля where