1、COUNT(*)和COUNT(COL)

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

优化总结,对于MyISAM表来说:

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

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

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会把*解析成“一条数据”的意思。

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

#0.817-一百万条的查询时间

select count(*)from student ;

mysql 查询数据条数_MySQL优化总结-查询总条数相关推荐

  1. mysql 查询语句属性值_MySQL学习——SQL查询语句(一)

    查询数据是指从数据库中获取所需要的数据,查询数据是数据库操作中最常用也是最重要的操作,用户可以根据对数据的需求,使用不同的查询方式,通过不同的查询方式可以获得不同的数据,在MySQL中使用select ...

  2. mysql 查询条数优化_MySQL优化总结-查询总条数

    1.COUNT(*)和COUNT(COL) COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数 ...

  3. MySQL数值扩大一百倍_Mysql优化----一条SQL百倍提升之旅

    在实现业务逻辑的时候,有些复杂一点逻辑会用数据库子查询去实现,但是sql用子查询会带来性能问题,下面就一个例子来说明,怎么优化子查询,来提升查询速度 mysql> desc update t_s ...

  4. mysql 分表后排序_MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?...

    昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how. 今天查了一些相关的资料,包括<MySQL性能调优与架构设计>. ...

  5. mysql返回数据只要年月日_MySQL支持按年月日查询

    在业务环境中,总是想要筛选出不同时间条件下的数据,例如我只想查询当天数据,当月数据或者本年数据.于是就想通过MySQL自带的几个时间函数进行简单的实现. 一.SQL语句实现Talk is cheap, ...

  6. mysql 数据记录导出_mysql如何导出600万条记录的数据表?

    目前我这么写: /** * Created by IntelliJ IDEA. * User: felix * Date: 2019-03-01 * Time: 18:49 */ set_time_l ...

  7. mysql查询数据分组后保留每组前n条数据

    最近做项目遇到一个这样需求的sql语句,根据一系列的条件后,分组查询出来的数据是这样的 可以看到用户id=4 的有三条数据,用户id=1的有两条数据. 我需求是相同的用户id只取最多两条数据,也就如下 ...

  8. mysql 查看表是否存在_MySQL优化篇二

    单表优化 最佳左前缀原则为,保持索引的定义和使用顺序的一致性 将含In的范围查询,放到where条件语句的最后. 索引需要逐步优化 两表优化 小表驱动大表 避免索引失效的一些原则: 复合索引,不要跨列 ...

  9. html 分页_MySQL——优化嵌套查询和分页查询

    Java识堂,一个高原创,高收藏,有干货的微信公众号,欢迎关注 优化嵌套查询 嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.嵌套查询写 ...

最新文章

  1. 财报上的云计算战场: 巨头们垄断加剧
  2. python在哪下载-2018版Python教程从哪儿下载
  3. Deepmind顺练了人工智能14天成为星海2最强玩家
  4. 【Matlab】方差是偏离均值的程度,那偏离中位数的程度怎么算呢?
  5. JavaScript实现单词首字母大写的方法集锦
  6. JSONField解决序列化与反序列化字段匹配问题
  7. mysql查询包含字符串的记录,MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法...
  8. 关于eclipse新建web项目,提示:The superclass javax.servlet.http.HttpServlet was not found on the Java解决办法...
  9. ASA 5505 配置
  10. mysql 存储过程发邮件_通过sql存储过程发送邮件的方法
  11. 通解:HTTP超时,或者require TLS/SSL,亦或者conda install / update/ create Solving environment不停
  12. getchar吸收回车
  13. 第2章第6节:使用Slider滑杆在指定的范围内选择一个数值 [SwiftUI快速入门到实战]
  14. 什么是MTTF,MTBF,MTRF
  15. ESD防护方法及设计要点
  16. 蜗牛星际b款装服务器系统,蜗牛星际 B款 双网口 全新安装黑群晖
  17. 16 个动态图!一款好用到爆的 Python 可视化利器
  18. 图像处理工具-Stirmark使用方法
  19. 2017年前端工程师应该学习什么
  20. android swf webview,android webview播放swf文件

热门文章

  1. 瑞安市计算机技术学校,瑞安市第七中学2019年招生简章
  2. Smart Home,让黑客攻击更加Smart
  3. 【Excel VBA】超级实用的UsedRange
  4. 使用GD库为图片打水印
  5. 最全的CSS浏览器兼容问题整理(转载)
  6. 【PARROT ANAFI】无人机仿真(一)——在Ubuntu18.04完成Olympe+Sphinx配置
  7. UI自动化测试如何走出困境?价值又如何体现?
  8. mysql中性别_在数据库中存储性别(性别)
  9. OpenGL绘制桥梁模型
  10. 简单使用scrapy框架下载漫画