位置: 编程技术 - 正文

MySQL优化总结-查询总条数(mysql 优化口诀)

编辑:rootadmin

推荐整理分享MySQL优化总结-查询总条数(mysql 优化口诀),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql优化参数详解,mysql优化步骤,mysql常用优化方案,mysql优化技巧实战,mysql优化实战,mysql常用优化方案,mysql优化技巧实战,mysql优化的几种方法,内容如对您有帮助,希望把文章链接给更多的朋友!

1、COUNT(*)和COUNT(COL)

COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数。还有有区别的。优化总结,对于MyISAM表来说:

1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;

2.尽量减少SELECT COUNT(*) FROMtablename WHERE COL = 'value' 这种查询;

MySQL优化总结-查询总条数(mysql 优化口诀)

3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 ='value' 的出现。

2、COUNT(*)还是COUNT(id)

根据我的理解,应该是使用COUNT(id)更加快速,因为如果我的id是一个自增的主键,那么计算它的数量显然比计算所有字段的数量需要消耗的资源少一些。但是我不止在一篇的类似指导mysql查询加速的文章中看到,都建议我们使用SELECT COUNT(*)而非直接COUNT主键,这是为什么呢?

貌似是因为用MyISAM引擎的表存储了总条数,如果没有WHERE或者WHERE恒为真(比如WHERE 1),那么COUNT(*)可以直接返回总条数。

另外,很显然COUNT(*)不是"计算所有的字段",显然MySQL会把*解析成“一条数据”的意思。

测试数据,简单对比一下,未做更深入的测试:

总结

总的来说,使用COUNT(id)还是更快一些,这里作的简单对比,供大家参考。

本文链接地址:https://www.jiuchutong.com/biancheng/348294.html 转载请保留说明!

上一篇:MySQL 语句注释方式简介(mysql中注释)

下一篇:mysql 启动1067错误及修改字符集重启之后复原无效问题(mysql启动时报1067)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络