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 使用事件(Events)完成计划任务
May 24 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
mysql 带多个条件的查询方式
Jun 05 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
MySQL添加索引特点及优化问题
Jul 23 MySQL
MySQL深分页问题解决思路
Dec 24 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中inlcude()性能对比详解
2012/09/16 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
php DES加密算法实例分析
2019/09/18 PHP
重载toString实现JS HashMap分析
2011/03/13 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
python的else子句使用指南
2016/02/27 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
Python实现识别手写数字大纲
2018/01/29 Python
python和opencv实现抠图
2018/07/18 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
如何使用Pytorch搭建模型
2020/10/26 Python
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
计算机求职信
2013/12/01 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
计划生育诚信协议书
2014/11/02 职场文书
会议通知范文
2015/04/15 职场文书
庆七一活动简报
2015/07/20 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python