+ -
当前位置:首页 → 问答吧 → 在SQL语句中,SELECE的效率问题

在SQL语句中,SELECE的效率问题

时间:2011-08-16

来源:互联网

如果数据库中有上万条以上的纪录。

SQL语句 和"select count(*) from tablename"相比
"select count(字段名) from tablename"效率能高多少。

没有对应的数据表,只能问理论了。大家指教哈。

作者: walkman_22   发布时间: 2011-08-16

这个没试过,真不知道!

作者: temptation99   发布时间: 2011-08-16

你在数据库中查询的时候分别打印出他们的耗时就能看出了O(∩_∩)O~

作者: hexytxl   发布时间: 2011-08-16

还真不知道、猜想应该都差不多!
如果你count(*)的话、系统应该会选择你表中的主键(或者自动生成的row)来替你数数!
反正不可能是count(id,name,pass)这样挨个给你数、因为count()函数里面只能有一个参数!
个人意见、如果我说错了、下面的同志别喷我!!!

作者: hzw2312   发布时间: 2011-08-16

count() 是不走索引的。。他会自动寻找最小字段进行统计。。

 

作者: zl3450341   发布时间: 2011-08-16

另外统计字段的时候、如果字段的值为空、那么则不统计了!
假如你表中的5条数据、name字段其中有3条为空、这个时候你count(name)得到的结果就是2!
如果你真的是想统计name的话这样就很正确、但是你想统计的是表中总共有多少条数据的话、这样就鸟了!

作者: hzw2312   发布时间: 2011-08-16

引用 4 楼 zl3450341 的回复:
count() 是不走索引的。。他会自动寻找最小字段进行统计。。

  这样啊~~~!!!当最小的字段有空值......那不是会出现统计错误!
  如果还要去判断列中没有空值的话......!
求解、大胡子!!!

作者: hzw2312   发布时间: 2011-08-16

自己感觉吧 count(*)走的应该是主键吧 count(字段)就是一个确定的字段吧
 效率不知道 可能*好点 
 个人感觉 继续学习

作者: HelloJuese   发布时间: 2011-08-16

引用 7 楼 hellojuese 的回复:
自己感觉吧 count(*)走的应该是主键吧 count(字段)就是一个确定的字段吧
效率不知道 可能*好点

应该是的把

作者: hepeng154833488   发布时间: 2011-08-16

热门下载

更多