我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么优化mysql分页时offset过大的Sql

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么优化mysql分页时offset过大的Sql

这篇文章将为大家详细讲解有关怎么优化mysql分页时offset过大的Sql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

通常分页查询的时候会使用这样的语句:

SELECT
*
FROM table
where condition1 = 0
and condition2 = 0
and condition3 = -1
and condition4 = -1
order by id asc
LIMIT 2000 OFFSET 50000

当offset特别大时,这条语句的执行效率会明显减低,而且效率是随着offset的增大而降低的。

原因为:

MySQL并不是跳过offset行,而是取offset+N行,然后返回放弃前offset行,返回N行,当offset特别大,然后单条数据也很大的时候,每次查询需要获取的数据就越多,自然就会很慢。

优化方案:

SELECT
*
FROM table
JOIN
(select id from table
where condition1 = 0
and condition2 = 0
and condition3 = -1
and condition4 = -1
order by id asc
LIMIT 2000 OFFSET 50000)
as tmp using(id)

或者

SELECT a.* FROM table a, 
(select id from table
where condition1 = 0
and condition2 = 0
and condition3 = -1
and condition4 = -1
order by id asc
LIMIT 2000 OFFSET 50000) b 
where a.id = b.id

先获取主键列表,再通过主键查询目标数据,即使offset很大,也是获取了很多的主键,而不是所有的字段数据,相对而言效率会提升很多。

关于“怎么优化mysql分页时offset过大的Sql”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么优化mysql分页时offset过大的Sql

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql执行时间过长怎么优化

要优化 SQL 执行时间过长,可以考虑以下几个方面:索引优化:确保表中的字段有适当的索引,可以加快查询操作。可以使用 `explain` 命令分析 SQL 语句的执行计划,查看是否有全表扫描或使用了不合适的索引。重构查询语句:检查 SQL
2023-10-26

mysql大数据分页优化的方法是什么

在处理大数据分页时,可以通过以下方法来优化MySQL数据库的性能:使用索引:为查询条件中经常使用的字段添加索引,可以加快查询速度。同时,对需要排序的字段也可以添加索引。避免使用SELECT *:只选择需要的字段,而不是选择全部字段。这样可以
mysql大数据分页优化的方法是什么
2024-04-09

mysql大数据分页优化的方法是什么

MySQL大数据分页优化MySQL大数据分页查询优化方法:使用索引、控制分页大小、利用查询缓存、优化LIMIT子句、使用window函数、分片技术、优化JOIN查询、使用游标、优化服务器配置,或使用NoSQL数据库。
mysql大数据分页优化的方法是什么
2024-04-09

Mysql深度分页搜索怎么优化

要优化MySQL深度分页搜索,可以考虑以下几种方法:使用索引:确保搜索的字段上有适当的索引。对于深度分页搜索,较大的表可能需要创建复合索引,以提高查询性能。限制返回的列:只选择需要的列,而不是返回整行数据。这可以减少数据传输量,提高查询速度
Mysql深度分页搜索怎么优化
2023-10-28

mysql大数据分页优化的方法有哪些

MySQL大数据分页优化的方法有以下几种:1. 使用索引:对于大数据表,使用合适的索引可以大大提高分页查询的性能。可以根据实际情况选择合适的字段创建索引,以加快查询速度。2. 使用LIMIT和OFFSET:使用LIMIT和OFFSET关键字
2023-08-23

mysql大数据分页优化的方法有哪些

MySQL大数据分页优化方法为提升MySQL分页性能,采取以下优化方法:索引优化:创建分页字段索引,避免函数或表达式使用。分页策略选择:根据性能需求选择LIMIT子句、ROW_NUMBER()或窗口函数分页。查询优化:使用变量存储总行数,过滤无关数据,合并查询。缓存优化:启用查询缓存,使用结果集缓存降低数据库压力。分区优化:根据分页字段水平或垂直分区数据,减少查询扫描范围。其他技巧:优化服务器配置,使用并行查询,异步分页,监控和调整策略。
mysql大数据分页优化的方法有哪些
2024-04-09

MySQL进行大数据量分页的优化技巧分享

优化MySQL大数据量分页技巧:采用索引优化、分段查询、缓存结果、优化WHERE子句、使用分页优化函数、分表分片、利用分布式系统、异步分页。其他技巧包括优化SQL查询、调整服务器配置、监控性能等。
MySQL进行大数据量分页的优化技巧分享
2024-04-02

编程热搜

目录