Mysql中一千万条数据怎么快速查询


Posted in MySQL onDecember 06, 2021

普通分页查询

当我们在日常工作中遇到大数据查询的时候,第一反应就是使用分页查询。

mysql支持limit语句来选取指定的条数数据,而oracle可以使用rownum来选取

mysql分页查询语句如下:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
  • 第一个参数用来指定第一个返回记录行的偏移量
  • 第二个参数指定返回记录行的最大数目
    • 当相同的偏移量时,数据量越大,花费时间越长
    • 当相同的数据量时,偏移量越大,花费时间越长

如何优化

经过上面的总结,我们可以很清晰的看到当偏移量大,数据量大的时候,查询的时间还是挺多的,所以我们就针对这两种来着手优化

偏移量大

采用子查询方式

我们可以先定位偏移位置的id,然后再查询数据

select * from test limit 1000000,10
select id from test limit 1000000,1
select * from test where id>=(select id from test limit 1000000,1)limit 10

 通过执行我们可以发现,第一条花费时间最大,第三条比第一条稍微好一点,而且子查询使用索引速度更快。

但是只是适用于id递增的情况

采用id限定方式

这种方法要求更高,id必须是连续递增,而且还得计算id的范围,然后使用between,sql如下:

select * from test where id between 1000000 and 1000100 limit 100;
select * from test where id>=1000000 limit 100

结果很快

这里limit是限制了条数,没有采用偏移量

优化数据量大问题

  • 返回结果的数据量也会直接影响速度
  • 减少不需要的列,查询效率会明显提升

到此这篇关于Mysql中一千万条数据怎么快速查询的文章就介绍到这了,更多相关Mysql 快速查询内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
详解MySQL主从复制及读写分离
May 07 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MySQL删除和插入数据很慢的问题解决
Jun 03 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
关于k8s环境部署mysql主从的问题
Mar 13 MySQL
mysql 子查询的使用
Apr 28 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 #MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 #MySQL
mysql中整数数据类型tinyint详解
Dec 06 #MySQL
SQL注入详解及防范方法
Dec 06 #MySQL
防止web项目中的SQL注入
Dec 06 #MySQL
mysql创建存储过程及函数详解
Dec 04 #MySQL
mysql5.6主从搭建以及不同步问题详解
You might like
PHP 面向对象详解
2012/09/13 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
2011/07/26 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
使用ECharts实现状态区间图
2018/10/25 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
Python 切分数组实例解析
2019/11/07 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
毕业实习个人鉴定范文
2013/12/10 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
工作失误检讨书范文
2015/01/26 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
办公室管理规章制度
2015/08/04 职场文书
创业计划之特色精品店
2019/08/12 职场文书
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS