2016-12-08 12 views
0

私は、2014年のすべてのエントリのクエリを次のコードで実装しました。この索引の設計を検討し、パフォーマンスの観点から特定の問合せに最適なものを選択できますか?改善することはできますか?

CREATE INDEX item_idx ON item (created); 

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

これは最適な解決法ですか、それとも改善が可能ですか?

+3

コードが完全に機能していても、改善を利用できる場合は、代わりにコードレビューを投稿してください。 – Carcigenicate

+1

あなたはどのデータベースを使用していますか?適切なタグを付けてください。 –

答えて

2

一般に、インデックスはYEAR()のような関数では機能しません。より良い指標が(created, text)上にあることを

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

注:以下は、一般的にインデックスを使用します。これはクエリのカバーインデックスです。

また、日付定数の形式はデータベースによって異なる場合があります。

関連する問題