+ -
当前位置:首页 → 问答吧 → [真伪]数据库中 select count(1) 比 select count(*) 快?

[真伪]数据库中 select count(1) 比 select count(*) 快?

时间:2011-09-02

来源:互联网

论坛上经常看到一种观点,就是 select count(1) from table1 .. 比 select count(*) from table1 .. 要快。

看看大家什么观点, 
估计大家都知道 select 1 from table1 肯定比 select * from table1 要快。但这个count(1) 与 count(*) 对比是如何呢?

发个贴子大家讨论讨论。

A) count(1) 快于 count(*) 
B) count(1) 慢于 count(*)
C) count(1) 速度上等同于 count(*)
D) 说不准,count(1) count(*) 哪个快不一定。

作者: ACMAIN_CHM   发布时间: 2011-09-02

明天去公司测试一下

作者: lxq19851204   发布时间: 2011-09-02

较高版本的数据库,c)

作者: sz_haitao   发布时间: 2011-09-02

我倒是很想数据库能推出类似sum(number field)的函数:sum(varchar field+',')

作者: sz_haitao   发布时间: 2011-09-02

mark!!

作者: qingYun1029   发布时间: 2011-09-02

count(1) 指的是 count(第1列) 吧,而 count(*) 自己选择主键列统计。

count(1) 比 count(*) 是没有依据的,或许是因为有些人自认为的优化措施罢了!

SELECT * 与 COUNT(*) 这里的“*”完全是不同的意义!认为 COUNT(1) 比 COUNT(*) 快的人,肯定没有理解 SELECT * 与 COUNT(*) 中“*”表示的意义是不一样的!

作者: bao110908   发布时间: 2011-09-02

引用 5 楼 bao110908 的回复:

count(1) 指的是 count(第1列) 吧,而 count(*) 自己选择主键列统计。


这个“1”你都没弄清楚,所以也不能断然下结论的

作者: monvay   发布时间: 2011-09-02