Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >【MySQL】limit分页怎样使性能优化?

【MySQL】limit分页怎样使性能优化?

提问于 2017-08-02 04:24:51
回答 1关注 0查看 913

请问,limit分页怎样使性能优化?我们需要做一些优化

回答 1

1008396

精选回答

发布于 2017-08-02 05:41:23

是不是觉得一条sql跑的性能不理想?见下图:

看到这里我已经心中有数了,select xxx limit a,b; 这是 分页功能开发 最常用的手段了,然而像这种偏移量特别大的时候,MySQL是吃不消的。

##先看下SQL里面这个limit分页的原理

select xxx order by a limit 100,10;

这个sql的意思是根据a字段排序取出第101条至110条,但并不是直接从100条开始往后取,而是取出110条,返回最后10条

由此可见随着起始位置的增大,性能肯定是越来越差的,这是不合理的。

##那么问题来了,如何解决?

简单,别在数据库层做分页就行,这就是最好的方法,特别是有模糊查询的时候,把排序算法交给Lucene这种第三方来做,不要让MySQL做他不擅长的事情。

###你觉得第三方太麻烦,就是想用MySQL来做分页,怎么办?

No Problem,我的思路是尽可能减少扫描的记录数,也就是 先确定起始的范围,再往后取N条记录。

代码语言:txt
AI代码解释
复制
-- id字段是test表的主键,我们用子查询先走主键定位到所需要的起始位置,再去取数据,类似下面sql
SELECT * FROM test  WHERE id >= ( SELECT sql_no_cache id FROM test LIMIT 80000,1 ) LIMIT 10 ;

当然也有其他类似的方法,举一反三即可。

和开发者交流更多问题细节吧,去 写回答
相关文章
MySQL 案例:Limit 分页查询优化
在各类系统的表格类信息展示的功能中,经常会用到“翻页”这个操作,在页面上每次只展示有限的数据,需要看其他数据的时候则像翻书一样翻到后面的“页”。在 MySQL 支持的 SQL 语法中对此有特殊的支持,开发人员在实现这类功能的时候很方便:
王文安@DBA
2020/07/28
3.7K0
MySQL 案例:Limit 分页查询优化
【说站】mysql中LIMIT分页如何优化
1、使用覆盖索引扫描,而不是查询所有的列。然后根据需要做一次关联查询再返回所有的列。
很酷的站长
2022/11/23
1K0
【mysql】limit实现分页
分页 1. 背景: 背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢? 背景2:表里有 4 条数据,如果只想要显示第 2、3 条数据怎么办呢? 2. 实现规则 分页原理 所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。 MySQL中使用 LIMIT 实现分页 格式: LIMIT 位置偏移量, 行数 第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记
兮动人
2022/03/04
4K0
MySQL分页性能优化指南
一道面试的问题,当MySQL表中有数据量很大的时候如何做分页。。。。当时只知道在数据量很大的时候可以分表,但不知道不分表时可以怎么做。。。。唉,谁让代理商就那么几条数据,一个简单的limit,offset就完全hold住了(捂脸)。。。 很多应用往往只展示最新或最热门的几条记录,但为了旧记录仍然可访问,所以就需要个分页的导航栏。然而,如何通过MySQL更好的实现分页,始终是比较令人头疼的问题。虽然没有拿来就能用的解决办法,但了解数据库的底层或多或少有助于优化分页查询。 我们先从一个常用但性能很差的查询来看一
用户1667431
2018/04/18
1.2K0
MySQL分页性能优化指南
很多应用往往只展示最新或最热门的几条记录,但为了旧记录仍然可访问,所以就需要个分页的导航栏。然而,如何通过MySQL更好的实现分页,始终是比较令人头疼的问题。虽然没有拿来就能用的解决办法,但了解数据库的底层或多或少有助于优化分页查询。
哲洛不闹
2018/09/18
1K0
MySQL 用 limit 分页为什么会影响性能?
原文链接:https://dwz.cn/K1Q1cePW
业余草
2019/11/18
1.4K0
MySQL分页性能优化指南
很多应用往往只展示最新或最热门的几条记录,但为了旧记录仍然可访问,所以就需要个分页的导航栏。然而,如何通过MySQL更好的实现分页,始终是比较令人头疼的问题。虽然没有拿来就能用的解决办法,但了解数据库的底层或多或少有助于优化分页查询。
哲洛不闹
2018/09/14
7830
性能优化-Limit查询的优化
Limit常用于分页处理,时长会伴随order by从句使用,因此大多时候回使用Filesorts这样会造成大量的IO问题。 例子: 需求:查询影片id和描述信息,并根据主题进行排序,取出从序号50条开始的5条数据。
cwl_java
2020/02/13
9620
MySQL学习,详解分页查询(limit)
offset:表⽰偏移量,通俗点讲就是跳过多少⾏,offset可以省略,默认为0,表
用户1289394
2021/10/26
3.3K0
LIMIT和OFFSET分页性能差!今天来介绍如何高性能分页
OFFSET 和 LIMIT 对于数据量少的项目来说是没有问题的,但是,当数据库里的数据量超过服务器内存能够存储的能力,并且需要对所有数据进行分页,问题就会出现,为了实现分页,每次收到分页请求时,数据库都需要进行低效的全表遍历。
GreatSQL社区
2023/02/23
1.7K0
MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但每个工单都包含了大量的信息。DBA进行了多次导出操作,不幸的是,每次尝试导出都导致了操作平台的卡顿和无响应。
修己xj
2023/09/11
1.9K0
MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但每个工单都包含了大量的信息。DBA进行了多次导出操作,不幸的是,每次尝试导出都导致了操作平台的卡顿和无响应。
修己xj
2023/09/02
8600
MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
mysql分页查询limit用法(怎么对文档进行分页)
客户端通过传递start(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:
全栈程序员站长
2022/07/26
1.9K0
mysql分页的limit参数「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128436.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/31
1.8K0
mysql分页的limit参数「建议收藏」
MySQL的limit查询优化
我们大家都知道MySQL数据库的优化是相当重要的。其他最为常用也是最为需要优化的就是limit。MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。 同样是取10条数据 select * from users limit 10000,10 select * from users limit 0,10   就不是一个数量级别的。   网上也很多关于limit的五条优化准则,都是翻译自MySQL手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。
java达人
2018/01/31
2.3K0
【说站】mysql limit分页过慢的解决
1、使用表的覆盖索引加速分页查询。由于使用索引查找有优化算法,而且数据在查询索引上,不需要再去找相关的数据地址。
很酷的站长
2022/11/24
9940
【说站】mysql limit分页过慢的解决
MySQL中使用LIMIT进行分页的方法
客户端通过传递start(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:
全栈程序员站长
2022/08/31
1.4K0
别再用 offset 和 limit 分页了,性能太差!
随着时代的进步,随着野心勃勃的企业想要变成下一个 Facebook,随着为机器学习预测收集尽可能多数据的想法的出现,作为开发人员,我们要不断地打磨我们的 API,让它们提供可靠和有效的端点,从而毫不费力地浏览海量数据。
Java团长
2022/08/12
5110
别再用 offset 和 limit 分页了,性能太差!
简单分页的性能优化
采用网上常见的分页方式,在sqlserver事件分析器中观察,发现 几个主要的sql查询中,耗费最大的是查询所有的记录数。 将其从分页程序中剔除,前后的效果进行对照。在30w左右的库中查询,大概时间消
用户1075292
2018/01/23
8070
简单分页的性能优化
点击加载更多

相似问题

在各类系统的表格类信息展示的功能中,Limit 分页如何查询优化?

4552

TDSQL-C MySQL 版 如何优化参数配置,提高性能?

1186

iOS腾讯IM性能优化?

0250

现有架构性能不足,如何对架构进行优化?

014

order by+limit数据出错怎么办?

2704
相关问答用户
擅长3个领域
萃橙科技 | 合伙人擅长4个领域
高级数据分析师擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档