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 使用SQL语句修改表名的实现
Apr 07 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
MySQL大小写敏感的注意事项
May 24 MySQL
一文读懂navicat for mysql基础知识
May 31 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
MySQL系列之四 SQL语法
Jul 02 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
Mar 22 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
关于MySQL中explain工具的使用
May 08 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
global.php
2006/12/09 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python re的findall和finditer的区别详解
2020/11/15 Python
PHP面试题大全
2015/10/16 面试题
华三通信H3C面试题
2015/05/15 面试题
药剂专业个人求职信范文
2014/04/29 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android