我已通过以下代码对2014年的所有条目实施了查询搜索。我们可以考虑这种索引设计,并从性能角度为给定查询选择最佳值吗?
CREATE INDEX item_idx ON item (created);
SELECT text, created
FROM item
WHERE YEAR(created) = '2014’;
是最佳解决方案还是可以改进?
答案 0 :(得分:2)
通常,索引不适用于YEAR()
之类的函数。以下通常使用索引:
SELECT text, created
FROM item
WHERE created >= '2014-01-01' AND created < '2015-01-01';
请注意,(created, text)
上有更好的索引。这是查询的覆盖索引。
此外,日期常量的格式可能因数据库而异。