我希望你们中的任何人能帮上忙,如果我有一个庞大的数据库,有上百万条条目,我只需要与某一年(比如2015年)相关的信息,如果我使用下面的查询,性能方面这是最佳实践还是有其他更好的查询方法,

CREATE INDEX table1_idx ON table1 (date_column);
SELECT text, date_column
FROM table1
WHERE datepart(yyyy, date_column) = 2015;

任何与此有关的帮助将不胜感激。

最佳答案

如果这是关于SQL Server的,那就不是这样做的。在字段上使用任何函数都会使in不可搜索。
始终使用正确的搜索条件,如:

SELECT text, date_column
FROM table1
WHERE date_column >= '20150101' and date_column < '20160101'

您还可以考虑将text添加为included列以防止键查找:
CREATE INDEX table1_idx ON table1 (date_column) include (text)

关于mysql - 从性能角度来看,以下SQL做法是好是坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36950827/

10-15 11:00