select count(column) 、 select count(*) 和 select count(1) 的区别
1个回答
展开全部
有次在统计页面的某个数值时,发现数据总会漏算,后面才知道,select (*)和select (column)是有区别的。
PS:菜是原罪啊!
据《高性能MySQL》一书记载:
总结:
select count(column) 对 特定的列 的值具有的行数进行计算,不包含 NULL 值。
select count(*) 对 行 的数目进行计算,包含 NULL。
当然,select count(1) 和 select count(*) 的结果是一样的。
1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;
2.尽量减少SELECT COUNT(*) FROM tablename WHERE COL = ‘value’ 这种查询;
3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = ‘value’ 的出现。
count(1) 跟 count(主键) 一样,只扫描主键。count(*) 跟 count(非主键) 一样,扫描整个表。明显前者更快一些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询