count(1) AND count(*) 对比
相信很多小伙伴都想知道count(1) 和 count(*) 的速度问题 ,今天我给大家做一下测试。我这里测试的是MySql数据库
声明:测试之前
我数据库表里面有100万条数据。我们先来测试count(*)
可以看出,count(*) 用时间差不多15秒,下面我们看一下count(1)
看到这我知道很多小伙伴还是找不到心里的答案,上面他可有一些客观原因。都是电脑重启后测试的,电脑重启后。肯定会加载启动项。所以效率上肯定有所差异。然而我再重启电脑后测试的select count(1) from test 第一个用时
34秒。所以上面做一个了解。下面我们看看电脑运行处于平稳状态下的对比,请看第一个对比count(*) 5.49 count(1) 5.11
别着急。俗话都是三局两胜,五局三胜,我们看第二次count(*) 4.86 count(1) 5.64
再看第三次count(*) 4.92 count(1) 4.39
第一个总结:count(*) count(1) 在没条件的情况下两者没有什么区别
然在上面是没有条件的。下面是有条件的
我对比了两次,可以看出count(*) 快于count(1), 下面来解释一下
count(1) 和count(*) 对比
如果你数据库没有主键count(1) 比count(*) 快,如果有主键主键作为条件count() 那么count(1) 比count(*) 快。
如果表里面只有一个字段那么是count(*)最快
count 解释
count(*) 返回表中所有存在行的总数包括null,然而count(1) 返回的是去除null以外的所有行的总数。有默认值的也会被记录
这下就对count 有一定的了解的把。可以动手测试一下
最后总结三条经验,(这个也是好久之前在网上看到的,不过本人亲自测试过)
1.任何情况下select count(*) from table 最优选择
2.减少select count(*) from table where condition = ? 这样的查询
3.杜绝select count(colunm) from table
---------------------
作者:yuan_ren_sheng
来源:CSDN
原文:https://blog.csdn.net/yuan_ren_sheng/article/details/81105306
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- MyEclipse10 中的两种FreeMarker插件的安装与配置
- (转载)C++ ofstream和ifstream详细用法
- JS获取网页宽高方法集合
- html5中使用标签支持视频播放
- BZOJ 1537: [POI2005]Aut- The Bus(dp + BIT)
- HDU 1203 I NEED A OFFER!(dp)
- .net工具类 获取枚举类型的描述
- 运行ConnectionDemo时遇到的问题及解决方案
- python enumerate用法总结
- python 优先队列
- git 恢复单个文件的历史版本
- 芯灵思SINA33开发板怎样创建编译环境
- Lua程序设计(三)面向对象实现一个简单的类
- 火狐扒代码插件ScrapBook
- spring注入是否会被回收
- “吃神么,买神么”的第一个Sprint计划(第四天)
- anyncTask的3个参数(从源码可以发现其中使用了ThreadPoolExcuter线程池)
- 【BZOJ1935/4822】[Shoi2007]Tree 园丁的烦恼/[Cqoi2017]老C的任务 树状数组
- FreeMarker + xml 导出word
- Spring框架学习(8)spring mvc上传下载
热门文章
- WebApiClient性能参考
- 使用PHP得到所有的HTTP请求头
- 特效 css3 渐变背景框
- 8分钟为你详解React、Angular、Vue三大前端技术
- [安卓基础] 005.创建一个简单的UI
- Java IO(四) InputStream 和 OutputStream
- 正则表达式:匹配单个数字重复n次
- 分布式项目开发-web.xml基础配置
- 【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读
- Java实现 LeetCode 96 不同的二叉搜索树