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

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

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

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

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

1、关于explain

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

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

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

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

2、关于返回值

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

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

另外本人从事在线教育多年,将自己的资料整合建了一个QQ群,对于有兴趣一起交流学习C/C++的可以加群:825414254,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

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

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

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

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

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

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

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

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

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

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

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

  6. mysql中count出来的条数有误_Mysql中count()使用的问题?

    简介: count()函数用来统计表的行数,也就是统计记录行数,很好理解的,但面试你这么说就有点单薄了. count()函数具体情况下的各种分析: 各类面试题总结了一下,应该遇到的话不会怕了: 1)为 ...

  7. mysql 修复表字段_mysql数据库总结一【安装,配置,表操作,字段操作,增删改, 备份-恢复,select查询】...

    服务器端安装 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入 sudo apt-get install mysql-server 启动服务 sudo service mysql star ...

  8. mysql选出重复的字段_mysql查询表里的重复数据方法:

    INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test  ...

  9. mysql数据库怎样添加字段_MySQL添加字段和修改字段的方法

    MySQL添加字段的方法并不复杂,下面将为您详细介绍MySQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助. 1.登录数据库 >mysql -u root - ...

最新文章

  1. linux shell 脚本入门
  2. input 单选框ajax提交,input radio单选框绑定change事件
  3. NodeJS入门04-Express路由和中间件 - 小之 - 博客园
  4. linux php7 mongodb,CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis
  5. Clojure Project 工程文件分析
  6. 部门研发linux sysfs (2)部门研发
  7. 通过键盘事件执行查询与回填数据
  8. 基于单片机倾角检测仪设计分享
  9. 汇编语言 XCHG指令
  10. 电子书(文学,计算机)搜索与下载网站推荐
  11. 全国ps计算机考试时间,全国计算机考试一级PS考试大纲
  12. 厉害了!百度智能云NIRO Pro智能机器人半年内连获三项产品设计大奖
  13. datedif函数(datedif函数在哪里找)
  14. NOIP训练 czy的后宫5(树形dp)
  15. 制造业数字化转型关键问题有哪些?
  16. python怎么设置窗口大小_python – 如何找出所需的窗口大小?
  17. Java使用aspose.word完美实现docx转doc
  18. VMware16安装过程分享
  19. Activity 切换动画(小米图库列表进入详情页,图片从固定位置放大进入,缩小退出)
  20. dumpsys用法简介

热门文章

  1. 【数据结构】线段树(interval tree)
  2. css字体转换程序(Node.js)
  3. Hibernate中的query.setFirstResult(),query.setMaxResults();
  4. 【leetcode刷题笔记】Restore IP Addresses
  5. Hello, world!
  6. Asp.net2.0页面的生命周期
  7. Ubuntu18.04修改主机名和用户名
  8. Docker下使用gdb
  9. Ubuntu使用U盘把从互联网上下载的安装包及其依赖更新到内部机
  10. 电脑向linux板卡传文件,ARM 开发板嵌入式linux系统与主机PC通过串口传输文件