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 慢查询日志深入理解
Apr 22 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
详解MySQL中的主键与事务
May 27 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
MySQL系列之十三 MySQL的复制
Jul 02 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
解决mysql的int型主键自增问题
Jul 15 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
Mysql排序的特性详情
Nov 01 MySQL
一文弄懂MySQL中redo log与binlog的区别
Feb 15 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 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 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
Python开发编码规范
2006/09/08 Python
Python编码时应该注意的几个情况
2013/03/04 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
使用python实现knn算法
2017/12/20 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
python scipy卷积运算的实现方法
2019/09/16 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Python txt文件如何转换成字典
2020/11/03 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
三星法国官方网站:Samsung法国
2019/10/31 全球购物
软件毕业生个人鉴定
2014/03/03 职场文书
低碳生活倡议书
2014/04/14 职场文书
2015年实习单位评语
2015/03/25 职场文书
开天辟地观后感
2015/06/09 职场文书
政审证明材料
2015/06/19 职场文书
化工生产实习心得体会
2016/01/22 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
用JS创建一个录屏功能
2021/11/11 Javascript