社区
MySQL
帖子详情
SELECT COUT(主键)、count(1)、count(*)的区别
你们都是坏人
2008-09-19 06:10:02
SELECT COUT(主键)、count(1)、count(*)的区别
...全文
332
8
打赏
收藏
SELECT COUT(主键)、count(1)、count(*)的区别
SELECT COUT(主键)、count(1)、count(*)的区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiang3630
2008-10-16
打赏
举报
回复
增加一条有NULL的记录测试一下就知道
测了,都一样!50000条数据
WWWWA
2008-09-22
打赏
举报
回复
增加一条有NULL的记录测试一下就知道
wwwwb
2008-09-22
打赏
举报
回复
如果只是主键,那么3个SQL语句结果是一致的,因为主键不能为NULL,如是其它字段,且有NULL的话,结果是
有区别的
wwwwb
2008-09-22
打赏
举报
回复
不是吧,COUNT(*)count(1)是算NULL行的,其它不算NULL
zhifeiji007
2008-09-21
打赏
举报
回复
select cout(主键),好像没有见过。
其他两个能得出相同结果。
懒得去死
2008-09-19
打赏
举报
回复
效果是一样的,性能也没有啥区别!
随风醉舞
2008-09-19
打赏
举报
回复
返回table表里面的记录总数
select count(1) from table的效率更好。
fcoolx
2008-09-19
打赏
举报
回复
根据explian 得出结论 没区别
mysql> explain select count(1) from table1;
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
1 row in set (0.00 sec)
mysql> explain select count(*) from table1;
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
1 row in set (0.00 sec)
mysql> explain select count(id) from table1;
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
NOIP信息学奥赛通关必备-第一个C++程序与
cout
输出语句
NOIP信息学竞赛C++编程基础语法知识--第一个C++程序与
cout
输出语句本课程是符合小学生认知特点的C++编程入门课,讲练结合,提升孩子解决NOIP竞赛试题的能力;课程案例均采用孩子生活中熟知常见的案例,讲解通俗易懂,让孩子可以学得懂,学得会;训练孩子的编程思维,提高处理解决编程问题的能力是NOIP信息学奥赛通关必备课
Oracle 中
count
(1) 、
count
(*) 和
count
(列名) 函数的
区别
1)
count
(1)与
count
(*)比较: 1、如果你的数据表没有
主键
,那么
count
(1)比
count
(*)快 2、如果有
主键
的话,那
主键
(联合
主键
)作为
count
的条件也比
count
(*)要快 3、如果你的表只有一个字段的话那
count
(*)就是最快的啦 4、
count
(*)
count
(1) 两者比较。主要还是要
count
(1)所相对应的数据字段。 5、如果
count
(1)是聚索引,id,那肯定是
count
(1)快。但是差的很小的。 因为
count
(*),自动会优化指定到那一个字段。所以没必要去.
深入分析:mysql统计条数
count
(*)、
count
(
主键
)、
cout
(1)、
count
(二级索引字段)、
count
(普通字段)性能比较
MyISAM 存储引擎(mysql5.5前):
count
(*) 性能最佳,因为存储引擎会存储精确的行数,因此不采用其他写法。 InnoDB 存储引擎(mysql5.5后): 先说结论,性能由高到低排序为:
count
(*) =
count
(最短非空索引字段) ≈
count
(1) >
count
(比
主键
短的非空索引字段) >
count
(
主键
) >
count
(普通索引字段) >
count
(普通字段) 看到这个结论,可能有人会说卧槽 ,这是什么玩意,那么记住,任何情况都用coun
mysql
count
里
select
_
select
count
()和
select
count
(1)的
区别
和执行方式讲解
在SQL Server中
Count
(*)或者
Count
(1)或者
Count
([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。往常我经常会看到一些所谓的优化建议不使用
Count
(* )而是使用
Count
(1),从而可以提升性能,给出的理由是
Count
( *)会带来全表扫描。而实际上如何写
Count
并没有
区别
。
Count
(1)和
Count
...
count
(1)和
count
(*)
区别
详述
count
(1)和
count
(*)
区别
详述
MySQL
56,678
社区成员
56,708
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章