游标分批查询,提高查询性能

大批量数据查询的方案

数据表,在查找大批量数据,或者滚动查询页面时,

如果使用全量查询,可能会因为查询时间过久,触发超时。

如果使用 LIMIT 分批查询,查到最后几页时,由于偏移量越来越大,查询会越来越慢。

数据表,在查找大批量数据,或者滚动查询页面时,可以使用游标分批查询。

游标分批查询

游标分批查询,也就是根据id 分批查找。

利用主键(或唯一索引)的有序性,每次记住上一次查询的最后一条 ID,下一批只取 ID 更大的记录,直到取完。

这种方式可以避免使用 OFFSET 导致的大偏移量性能问题。

sql 示例:

复制代码
-- 第一批:取前 1000 条
SELECT * FROM user WHERE id > 0 ORDER BY id LIMIT 1000;
-- 假设结果中最大的 id 为 1000

-- 第二批:取 id > 1000 的下 1000 条
SELECT * FROM user WHERE id > 1000 ORDER BY id LIMIT 1000;
-- 依此类推
相关推荐
城管不管3 小时前
嵌入模型Embedding Model
java·开发语言·python·embedding·嵌入模型
斯维赤3 小时前
每天学习一个小算法:选择排序
java·学习·算法
book123_0_993 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
NCIN EXPE3 小时前
使用Springboot + netty 打造聊天服务(一)
java·spring boot·后端
爱学习的小囧3 小时前
ESXi性能历史怎么监控?2种方法,图形化+命令行全覆盖
java·linux·运维·服务器·网络·esxi·esxi8.0
逻辑驱动的ken3 小时前
Java高频面试考点场景题11
java·深度学习·面试·职场和发展·高效学习
学习3人组4 小时前
面向对象编程:反射(Reflection)原理与应用详解
java
斯维赤4 小时前
每天学习一个小算法:快速排序
java·python·学习·算法·排序算法
天码-行空4 小时前
深入拆解 Tomcat 系统架构:连接器如何设计
java·系统架构·tomcat