Могу ли я улучшить "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
предложение, неточные выражения, такие как <
или >
отключит индекс для заказа.