假设表T中有100W条纪录,不考虑索引等因素,只想知道表中是否有满足  f='aaa'  的纪录存在,下面几种写法哪种查询速度最快?1、IF EXISTS(SELECT TOP 1 1 FROM T WHERE f='aaa')
2、IF EXISTS(SELECT 1 FROM T WHERE f='aaa')
3、IF EXISTS(SELECT TOP 1 f FROM T WHERE f='aaa')
4、IF EXISTS(SELECT f FROM T WHERE f='aaa')
5、IF EXISTS(SELECT * FROM T WHERE f='aaa')
===============================================或者还有别的什么速度更快的写法?

解决方案 »

  1.   

    TO liangCK 小梁(幸福,這麼遠,那麼甜...!) 比如
    IF EXISTS(SELECT 1 FROM T WHERE f='aaa') ,假设有100条纪录满足要求,DBMS是先生成100个1的纪录集再用EXISTS来判断呢还是找到第1个满足要求的纪录后,即刻返回EXISTS判断结果而不再继续执行下去?谢谢!
      

  2.   

    找到第1个满足要求的纪录后,即刻返回EXISTS判断结果而不再继续执行下去