IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Mysql数据库分页查询及优化 -> 正文阅读

[大数据]Mysql数据库分页查询及优化

????????最近遇到个数据库分页查询问题,mysql数据库分页查询默认是升序查询,就是第一页查询的是最先插入的数据,最后一页才是最新插入的数据,弄了个小的数据库表单,记录下我的操作过程,还有优化查询速度的方法。

???????假设我的数据库里的表名为WHITELISTDATA,数据一共有13条,每页要求显示10条数据?

1、一般分页查询方法:

第一页:

select * from WHITELISTDATA order by id limit 0,10

备注:limit后面的0是页数减1然后乘以每页显示数量10,limit的详细的分页知识可以自行再另外查询资料

查询第二页:

select * from WHITELISTDATA order by id limit 10,10

2、优化查询方法(利用子查询进行优化查询)

查询第一页方法:

select * from WHITELISTDATA where id >= (select id from WHITELISTDATA order by id limit 0,1) limit 10;

查询第二页方法:

select * from WHITELISTDATA where id >= (select id from WHITELISTDATA order by id limit 10,1) limit 10;

备注:

优化的数据库查询当数据在上万情况下第二种方法比第一种方法快好几倍的查询速度

在此我大概解释下优化提速的原因:普通方法查询的时候会遍历数据库的每行和每列数据,全部都要读一遍,所以数据上万条了,键值又多的话会慢的不行。

优化用的子查询方法就要稍微好点,他首先是通过这条语句《select id from WHITELISTDATA order by id limit 0,1》查询到分页查询的那个ID值,不是遍历每行每列数据,耗时少,然后再根据这条语句《select * from WHITELISTDATA where id >= 》查询ID值大于上面查询出来的那个ID值得数据即可,所以遍历的数据就只有10条数据,所以当数据量很大的时候查询速度会快很多。

3、降序查询

上面的查询方式都是通过ID的升序查询,所以在分页查询的时间,新添加的数据会被放到最后一页,有些需求是最新添加的数据需要放在最前面,保证用户方便查看,所以此时需要降序查询,数据库查询默认情况下是升序查询,降序查询需要修改一些参数,本质就是加一个desc参数。

普通方法的降序查询

降序查询第一页数据方法

select * from WHITELISTDATA order by id desc limit 0,10

降序查询第二页数据方法

select * from WHITELISTDATA order by id desc limit 10,10;

优化降序查询方法:

优化降序查询第一页数据方法

select * from WHITELISTDATA where id <= (select id from WHITELISTDATA order by id desc limit 0,1) order by id desc limit 10;

优化降序查询第二页数据方法

select * from WHITELISTDATA where id <= (select id from WHITELISTDATA order by id desc limit 10,1) order by id desc limit 10;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:22:23  更:2022-10-22 21:23:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/23 10:35:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码