一、前言

这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数。

二、关于count的优化

网上关于count()优化的有很多。博主这边的思路就是没索引的就建立索引关系,然后使用count(1)或者count()来提升速度。这两个函数默认使用的是数据表中最短的那个索引字段。我朋友这边因为表中只有一个索引字段,所以使用count(1)和count()没什么区别。

MySQL中聚合函数count的使用和性能优化

(https://blog.csdn.net/lmy86263/article/details/73681633)

mysql count(*) 会选哪个索引?

(https://blog.csdn.net/zbdba/article/details/47753721)

大家可以参考这两个博客,都挺不错的。

三、使用explain获取行数

1、关于explain

关于explain,使用mysql的都知道,这个函数是专门用于查看sql语句的执行效率的,网上可供参考的文章很多。

定义: explain 命令速度很快,因为 explain 用并不真正执行查询,而是查询优化器【估算】的行数。

我们使用explain之后,会看到返回很多参数,其中:

rows:显示MySQL认为它执行查询时必须检查的行数。就是这个东西了,既然我们要获取的是数据表的行数,那么可以使用:

2、关于返回值

以前博主也没注意过返回值的问题,都是直接通过phpmyadmin来查看sql的执行效率。这次因为要用到rows的值,所以就打印了一下,原来这个explain函数是会返回一个数组。这样我们就能通过这个数组获取到我们需求的rows。

这里直接获取这个值即可。速度极快。原来查询速度是2.33s,换成只用explain之后,速度仅为0008s,提升十分巨大。

MySQL 的 count(*) 的优化,获取千万级数据表的总行数相关推荐

  1. mysql 亿级表count_码云社 | 砺锋科技-MySQL的count(*)的优化,获取千万级数据表的总行数 - 用代码改变世界...

    专注于Java领域优质技术号,欢迎关注 作者:李长念 一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去.找了很多优化方案,最后另辟蹊径 ...

  2. mysql的count(*)的优化,获取千万级数据表的总行数

    一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去.找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数. 二.关于cou ...

  3. mysql 查询表总行数字段_MySQL的count(*)的优化,获取千万级数据表的总行数

    这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去.找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数. 网上关于count()优 ...

  4. mysql count 百万级_MySQL 的 count(*) 的优化,获取千万级数据表的总行数

    一.前言 二.关于count的优化 三.使用explain获取行数1.关于explain 2.关于返回值 一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(* ...

  5. server sql 数据总行数_SqlServer中获取数据库中每个表的行数

    CREATE TABLE #RowCounts(NumberOfRows BIGINT,TableName VARCHAR(128)) EXEC sp_MSForEachTable 'INSERT I ...

  6. 给第一行单元格赋值WPS JS获取工作表的总行数WPS JS获取工作表的总行数

    戳我,了解更多相关办公的小技巧 给第一行单元格赋值 1.在计算机中有一种ASCII编码,其中A在计算机中的表示的数字是65,a的ascii码是97,b的ascii码是98. 2.从A1到F1可以看到第 ...

  7. 给第一行单元格赋值 + WPS JS获取工作表的总行数 + WPS JS获取工作表的总行数

    戳我,了解更多相关办公的小技巧 给第一行单元格赋值 1.在计算机中有一种ASCII编码,其中A在计算机中的表示的数字是65,a的ascii码是97,b的ascii码是98. 2.从A1到F1可以看到第 ...

  8. mysql 1千万 like优化_MYSQL千万级数据量的优化方法积累

    1.分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表mem ...

  9. 物理机存放mysql实例原则_MySQL优化笔记(四)--表的设计与优化(单表、多表)...

    前面讲了SQL优化以及索引的使用.设计优化了,那么接下来就到表的设计与优化啦!!!真实地去设计优化单表结构以及讲述多表设计基本原则(结合真实的生产环境的取舍来讲述). 文章结构:(1)单表设计与优化: ...

最新文章

  1. CentOS 6.x中目录结构及用途
  2. WCF 入门之旅(4): 怎样用客户端调用WCF服务
  3. 用ASP.NET AJAX框架扩展HTML Map控件
  4. 测试Open Live Writer
  5. 解决:Error response from daemon: manifest for xxx:latest not found: manifest unknown...
  6. Qt在指定区域内拖动窗口
  7. 未能卸载该设备.启动计算机,未能卸载该设备。启动计算机时可能需要该设备...
  8. 系统蓝屏日志DMP文件分析工具WinDbg及教程
  9. 威纶通触摸屏制作自定义欢迎界面的几种方法介绍
  10. win8 完全禁用uac的方法
  11. QL-Emotion(FDD3.0)教程
  12. 拼多多又起一事:因为看到同事被抬上救护车我被拼多多开除了
  13. angularjs2学习教程
  14. 所见所得的OFFICE功能区编辑器(自定义界面编辑)RibbonCreator
  15. Django项目 no signature found for builtin错误原因
  16. 软件安装与升级——rpm
  17. 120项优化: 超级爬虫Hawk 2.0重磅发布!
  18. 非华为手机Scrcpy无线投屏电脑多屏协同步骤(电脑无线连接投屏手机,设备,tcpip)
  19. span内一连串英文字符不会自动换行
  20. java汉字转换二进制

热门文章

  1. Git与GitHub的使用
  2. [Java并发编程实战] 共享对象之可见性
  3. LinkedHashMap分析
  4. MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
  5. poj2104(划分树模板)
  6. 1.A+B Problem
  7. 要搞清楚对象和对象的引用
  8. win7下安装rose
  9. 【STM32 .Net MF开发板学习-21】蓝牙遥控智能小车(PC模式)
  10. 《WebForm开发系列高级篇》Item2导出EXCEL通用类(GridView,DataList,Repeater,DetailView)