基于MySQL的分页 游标 流式查询疑问

来源:3-8 索引额外的问题之如何调优Sql

mekio

2023-02-22

老师,你好。基于MySQL数据库做分页查询、游标查询及流式查询的原理、使用场景及使用方式能帮我解答一下吗?谢谢!
写回答

1回答

翔仔

2023-02-24

同学好,

分页查询

将查询后的结果集,全部返回,但是量大可能就内存溢出,为了控制返回的数据量 用了分页;

流式查询

客户端与服务端保持一个长连接,一条一条读取;获取完所有数据该连接才能进行其他操作

游标查询

游标查询也是分页查询的一种;

a.传统使用select * from xxx limit 1, offset 10;

相当于每次查询,指定了页大小和页数

b.游标查询 类似使用select id,* from xxx where id>x limit 10;

使用id和limit来分页,相比于传统分页 不会因为分页查询过程中的数据变化导致数据位移

流式查询

优点:大数据量时不会有OOM问题。

缺点:占用数据库时间更长,导致网络拥塞的可能性较大。

游标查询

优点:大数据量时不会有OOM问题,相比流式查询对数据库单次占用时间较短。

缺点:相比流式查询,对服务端资源消耗更大,响应时间更长。

使用场景

流式查询一般是用到大数据量的场景,基本就是数据迁移和线下的数据计算;线上业务通常用分页查询

1
1
mekio
了解。谢谢!
2023-02-24
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程