2016-12-08 9 views
0

Я выполнил поиск запроса для всех записей с 2014 годом по следующему коду. Можем ли мы рассмотреть этот дизайн индекса и выбрать оптимальный для данного запроса с точки зрения производительности?Могу ли я улучшить его?

CREATE INDEX item_idx ON item (created); 

SELECT text, created 
FROM item 
WHERE YEAR(created) = '2014’; 

Это оптимальное решение или возможно улучшение?

+3

Если ваш код полностью работоспособен, но может быть полезен, пожалуйста, разместите его в разделе «Обзор кода». – Carcigenicate

+1

Какую базу вы используете? Пожалуйста, отметьте соответствующим образом. –

ответ

2

В целом, индекс не будет работать с такой функцией, как YEAR(). Далее, как правило, используют индекс:

SELECT text, created 
FROM item 
WHERE created >= '2014-01-01' AND created < '2015-01-01'; 

Обратите внимание, что лучший показатель находится на (created, text). Это индекс покрытия для запроса.

Кроме того, формат констант даты может различаться между базами данных.