如果是10000条数据的话
1. select * from table where state=0
2. select * from table where state=0 and (SendTime between '2000-1-1 00:00:00' and getdate())
因为到现在的所有数据都是从2002-1-1 00:00:00 开始的
第二句会比第一句查询效率低吗?
快慢取决于索引
不太明白诶 就比如说是orderby 之类的?
@.F.: 你建一个包含state与SendTime的索引试试
@dudu: 嗯 我明白了...不过 我一般都是建立的id的索引就是咯,也就是说,按照索引来搜索的时候 ,会更快
理论上是第1条语句快一些。
因为只要看state=0就行了。
后一条要看二个条件。且SendTime between '2000-1-1 00:00:00' and getdate()会使查询变慢。
不过你可以执行这二条语句看看在实际的环境中效率是什么样的。
只有执行了才知道真实的结果。
我执行了的时候 有时候第一条快 有时候第二条快 ...都晕了
@.F.: 那就是差不多的。数据量小的时候,可以忽略。数据大的时候就会有明显的区别了。
要把索引考滤在内的话, 就要看你的表索引怎么建的了。
你这样问的话,没有说明索引条件,一般就把state=0 and SendTime 当作有同样的索引了。