找到1条记录后,对唯一索引的计数(*)是否会停止?

时间:2014-11-17 00:02:55

标签: count exists sybase-ase

我继承了一些看起来很狡猾的SQL,在查找具有唯一索引的行时,使用COUNT(*) = 1代替使用EXISTS

我知道我很乐观,但如果查找一个唯一索引并且找到一条记录,那么查询是否足够聪明,可以停止对行进行计数?

我试图对此进行测试,似乎答案是肯定的,但在开始更改此代码的过程之前,我一直在寻找明确的答案。

我们使用Sybase ASE 15.7

1 个答案:

答案 0 :(得分:1)

实际上答案是肯定的。

我做了一个查询计划分析,它说:

  Forward Scan.
  Positioning by key.
  Index contains all needed columns. Base table will not be read.

实际上这似乎很清楚,因为查询显然会使用索引,然后聚合只是计算该查询的结果。