distinct 与 count的工作原理
请教一下,distinct 与 count的工作原理是什么
有没别的语句比distinct 的效率高,但能达到同样的效果?
有没别的语句比count的效率高,但能达到同样的效果?
请教一下,distinct 与 count的工作原理是什么
有没别的语句比distinct 的效率高,但能达到同样的效果?
有没别的语句比count的效率高,但能达到同样的效果?
调试欢乐多
count 如果是查询表的条数的话,可以直接从系统表中得到。
这个里面讨论的就是这个问题。
distinct 去重,去重肯定要排序吧,至于排序你懂得,有很多算法的
count distinct 都会用到索引,有没有索引直接影响到你的速度。这些往往要伴随着一些条件执行,而这些条件也起到很大的影响作用 例如select count(*) from tb where id>1000 --id 列有聚集索引select count(*) from tb
前者的开销要远远小于后者,速度也快,因为前面是index seek 后面就是index scan。
和group by 是没有什么区别的
count 如果是cout整个表,可以从系统表里面读取,整个肯定快很多。
select rowcnt from sys.sysindexes where id= object_id('ItemCategory') and indid<=1 and OBJECTPROPERTY(id,'IsTable')=1
count 不是遍历全表的时候,就没更加高效的方法吗?
这两个东东经常用到,但是比较占资源,为了节省资源,常常不得不在前台做大量的工作来弥补。