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 18 MySQL
MySQL中存储时间的最佳实践指南
Jul 01 MySQL
通过shell脚本对mysql的增删改查及my.cnf的配置
Jul 07 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 MySQL
MySQL创建定时任务
Jan 22 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
mysql查找连续出现n次以上的数字
May 11 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PDO::errorCode讲解
2019/01/28 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
javascript编写简易计算器
2017/05/06 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
函授毕业自我鉴定
2013/12/19 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
网络书店创业计划书
2014/02/07 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server
mysql创建存储过程及函数详解
2021/12/04 MySQL