在SQL性能中有或没有WHERE子句

时间:2016-09-09 02:43:15

标签: sql performance

对不起这个新手问题。

我想查询一个包含1000万行的表。但是,我可能不需要历史数据。鉴于在数据提取过程中减轻服务器上的负载,会在查询帮助中实现WHERE子句吗?例如,我可以仅提取2015年至2016年的数据,而不是2007年至2016年的数据。

或者我应该在没有WHERE子句的情况下拉出整个数据表吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

WHERE显然会有所帮助,因为它减少了从数据库返回到应用程序的行数。而不是1000万行,你会得到一个较小的数字。这通常是表现胜利。

鉴于您想要提取完整年份的数据,WHERE子句可能不会使用索引。从技术上讲,这是因为条件的选择性太低 - 也就是说,返回的行太多。一个例外是日期/年份列是聚集索引。

但是,不使用索引是不相关的,因为当您的查询具有WHERE子句时,返回的数据量应该是总数据的一小部分。