У меня есть этот запрос:
SELECT ...
FROM property as p FORCE INDEX (property_order)
INNER JOIN property_attribute as pa ON pa.property_attribute_property_id = p.property_id
WHERE ...
ORDER BY p.property_featured DESC, p.property_ranking_date DESC
Этот запрос работает хорошо, но если я добавлю поле из property_attribute
в ORDER BY, производительность станет ужасной, даже с использованием сортировки файлов.
Изменение:
ORDER BY
p.property_featured DESC,
pa.property_attribute_minimum_photo_1,
p.property_ranking_date DESC
На самом деле все очень странно. Если я удаляю FORCE INDEX из запроса, я получаю это в первой строке моего объяснения:
1 SIMPLE agent ref PRIMARY,agent_published,agent_id agent_published 1 const 1 Using temporary; Using filesort
Хорошо, в s a problem in my 'agent' table? So, when I remove the all ORDER BY, the filesort disappears. There
нет поля в таблице операторов в ORDER BY ...
Мои вопросы:
Должен ли я добавить индекс в таблицу property_attribute, развивающую поле 'pa.property_attribute_minimum_photo_1'?
Если да, добавив туда индекс, я должен использовать индекс в предложении INNER JOIN?
Если нет, куда мне добавить индекс?
Есть ли способ объединить в одном индексе столбцы из разных таблиц?