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 08 MySQL
MySQL COUNT函数的使用与优化
May 10 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 MySQL
MySQL的全局锁和表级锁的具体使用
Aug 23 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
mysql 子查询的使用
Apr 28 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
动态加载iframe
2006/06/16 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
xml转json的js代码
2012/08/28 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
python实现二维数组的对角线遍历
2019/03/02 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
设置器与访问器的定义以及各自特点
2016/01/08 面试题
机械制造专业个人的自我评价
2013/12/28 职场文书
大学生暑期实践感言
2014/02/26 职场文书
小学班主任评语大全
2014/04/23 职场文书
工作经历证明书范文
2014/11/02 职场文书
未婚证明范本
2015/06/15 职场文书
python四种出行路线规划的实现
2021/06/23 Python