Назад | Перейти на главную страницу

Mysql - Улучшение производительности ORDER BY с индексом

Могу ли я улучшить "ORDER BY", добавив индекс на fld_date.

 SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;

Запрос использует индекс (fld1, fld2 - комбинированный индекс) в предложении where. Поскольку ORDER BY не соответствует индексу в точности, если я добавлю индекс с fld_date, это будет полезно для повышения производительности ORDER BY fld_date. ?

Посмотрите на кластерные индексы, их можно использовать для повышения производительности в некоторых случаях с большими наборами данных, по-видимому, именно это БД в стиле SQL использовала, когда вычислительные мощности были очень ограничены.

Источник: я работаю со старшим разработчиком, который упомянул, что они будут использовать индекс, чтобы избежать необходимости выбирать фактические значения в базе данных из-за ограничений пропускной способности.

Согласно документации, которую я проверил, они являются просто «первичными ключами», но они не такие, какими они были когда-то, может потребоваться копание, чтобы получить от этого неясное преимущество в производительности.

Дополнительную информацию можно найти здесь: https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

См. Заголовок «Влияние на оптимизацию ORDER BY» в указанной статье.

Вы должны добавить индекс (fld1, fld2, fld_date). Обратите внимание, это будет работать, только если fld1 и fld2 установлены на точное совпадение в WHERE предложение, неточные выражения, такие как < или > отключит индекс для заказа.