在某平台拿到了获取了所有股票的日K数据(出于学习目的),共1200w 多条。随手一个 select count(*) 想查下总数发现都需要跑好几分钟才能响应。
于是网上搜了几种统计总数的方式,分别试下,对比下查询效率。

表结构如下

CREATE TABLE `east_dc_dkline` (`S_CODE` varchar(10) NOT NULL COMMENT '股票代码',`S_NAME` varchar(20) DEFAULT NULL COMMENT '股票名称',`DK_DATE` date NOT NULL COMMENT '数据日期',`OPENING_PRICE` varchar(20) DEFAULT NULL COMMENT '开盘价',`LATSET_PRICE` varchar(20) DEFAULT NULL COMMENT '最新价',`TOP_PRICE` varchar(20) DEFAULT NULL COMMENT '最高价',`LOWEST_PRICE` varchar(20) DEFAULT NULL COMMENT '最低价',`VOLUME` varchar(30) DEFAULT NULL COMMENT '成交额(手)',`AMOUNT` varchar(30) DEFAULT NULL COMMENT '成交量',`AMPLITUDE` varchar(50) DEFAULT NULL COMMENT '振幅',`GAINS` varchar(20) DEFAULT NULL COMMENT '涨幅(百分比)',`RISING_PRICE` varchar(10) DEFAULT NULL COMMENT '上涨价格',`TURNOVER_RATE` varchar(10) DEFAULT NULL COMMENT '换手率(百分比)',PRIMARY KEY (`S_CODE`,`DK_DATE`),KEY `idx_date` (`DK_DATE`),KEY `idx_name_date` (`S_NAME`,`DK_DATE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

以下每种方法各执行3次,比较平均时间;【总数据条数为 12300489 】

1,SELECT COUNT(*) FROM east_dc_dkline

执行 3 min 9 sec执行 3 min 44 sec执行 2 min 56 sec

2,SELECT COUNT(1) FROM east_dc_dkline

执行 2 min 30 sec执行 2 min 31 sec执行 2 min 29 sec

3,SELECT COUNT(S_CODE) FROM east_dc_dkline – 统计字段 (非主键,ps:由于是组合主键,我count 了其中的一个字段,EXPLAIN 查看执行计划,发现走的还是 默认的索引(非主键索引))

执行 2 min 31 sec执行 2 min 31 sec执行 2 min 32 sec

4,SELECT COUNT(S_CODE) FROM east_dc_dkline FORCE INDEX(PRI) – 统计字段 强制使用主键索引

执行 1 min 49 sec执行 1 min 52 sec执行 1 min 21 sec

以上为本地windows 系统内安装的mysql数据库 对几种查询方式的执行时间比较,供参考。

补充:sql 执行前可通过 EXPLAIN 先看下执行计划内的索引使用情况。以及可以直接根据 执行计划内 的 rows 得到大致的表内数据量。

over…

mysql 大数据量查询总数 方式比较相关推荐

  1. 一次mysql大数据量查询 慢查询导致服务阻塞后的学习

    场景还原:前一个月给朋友写了个简单的登录功能,简单的查询数据库登录逻辑,使用mysbatis-plus进行的dao层代码生成(吐槽一下这个工具,真是方便一时爽,后面维护难,比较喜欢自己能够组装和优化s ...

  2. MySQL大数据量分页查询方法及其优化

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:收藏了!7 个开源的 Spring Boot 前后端分离优质项目个人原创+1博客:点击前往,查看更多 链接:ht ...

  3. easyui分页查询为什么会有下拉框_6个针对MySQL大数据量分页查询优化的锦囊妙计...

    作者:大神养成记转载来源:http://sina.lt/gauW 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M ...

  4. 千锋重庆Java学习之MySQL大数据量分页查询方法及其优化

    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺 ...

  5. mysql大数据量分页的一些做法

    随着公司业务的增长,数据库的数据也呈指数级增长,拿订单表为例,之前公司的订单表每天只有几千个,一个月下来不超过十万.而现在每天的订单大概就是2w+,目前订单表的数据已经达到了700w.这带来了各种各样 ...

  6. MYSQL大数据量分页查询优化 - 十万、百万级优化

    1. 常见问题 在mysql大数据量的基础下,分页中随着页码的增加,查询时间也会响应的增加.所以到了百万级别的数据量时,我们就需要优化已有的查询代码进行合理有效的分页. 一般情况下,页码与查询时间成正 ...

  7. 大数据量查询:流式查询与游标查询

    最近在做一个计算相关的功能,大体就是有很多条SQL,每条SQL都涉及复杂地运算,最后要将所有计算结果进行合并分析.经初步测试,每个SQL起码会查出几十万条记录,我们现在有毛毛多的这种SQL. 最大的问 ...

  8. mysql大数据量导入

    mysql大数据量导入 mysql大数据量导入 数据生成 测试数据5000万 import java.io.*; import java.util.Random;public class Genera ...

  9. 高并发的大数据量查询导致系统频繁死机

    我们的大数据量查询是数据库分页的, 但是导出和打印功能是基于全部数据的. 系统投入使用后,对于导出和打印功能的使用远远要高于我们的预期. 而我们的系统的硬件设备是有限的 不能再升级了. 抓取内存大对象 ...

最新文章

  1. 2021年大数据Spark(二十六):SparkSQL数据处理分析
  2. 不支持打开非业务域名htts:....请重新配置
  3. 深入浅出Spring Security(三):FilterChainProxy的运行过程
  4. AI解梦成为现实 未来还有无限可能
  5. JS Map 简单实现
  6. ABAP performance学习笔记
  7. mac安装mysql mysql命令找不到_MacBook通过Homebrew安装mysql
  8. 归纳:数据库设计的六个阶段详解(有这一篇就够了)
  9. Redmine性能测试
  10. 区块链教程(二):基础概念介绍
  11. 2018CCPC网络赛
  12. 分享几个简单的HTML网页特效代码
  13. js 通过正则表达式验证身份证格式
  14. 编写README文档(Markdown)
  15. 电流互感器的一些计算
  16. QQ音乐推荐歌单API报错 invalid referer
  17. Clinical Chemistry | 张建中/徐健开发幽门螺杆菌单细胞精准诊疗技术
  18. 泛娱乐生态倒逼,各大视频为何抢位3D动画?
  19. [NOIP 2018 T3]摆渡车
  20. leetcode-算法基础-5、6、7、8

热门文章

  1. Lock锁中ReentrantLock中Condition的使用
  2. C语言编程实例—输出指定图形
  3. 理解sparse coding
  4. 【兔年烟花】旖旎风景——浪漫烟花(Python实现)
  5. java入门好学吗_java好学吗?我是小白中的小白,零基础...
  6. 敏捷团队的规范与准则
  7. java合并时间点为时间段(时间区间)
  8. c++中计算2得n次方_南大专转本 2020年计算机考前模拟(A)
  9. OpenJudge百炼-2745-显示器-C语言-模拟
  10. 神经网络的输入稀疏矩阵,神经网络中的矩阵运算