基于MySQL的分页 游标 流式查询疑问
来源:3-8 索引额外的问题之如何调优Sql
mekio
2023-02-22
老师,你好。基于MySQL数据库做分页查询、游标查询及流式查询的原理、使用场景及使用方式能帮我解答一下吗?谢谢!
写回答
1回答
-
同学好,
分页查询
将查询后的结果集,全部返回,但是量大可能就内存溢出,为了控制返回的数据量 用了分页;
流式查询
客户端与服务端保持一个长连接,一条一条读取;获取完所有数据该连接才能进行其他操作
游标查询
游标查询也是分页查询的一种;
a.传统使用select * from xxx limit 1, offset 10;
相当于每次查询,指定了页大小和页数
b.游标查询 类似使用select id,* from xxx where id>x limit 10;
使用id和limit来分页,相比于传统分页 不会因为分页查询过程中的数据变化导致数据位移
流式查询
优点:大数据量时不会有OOM问题。
缺点:占用数据库时间更长,导致网络拥塞的可能性较大。
游标查询
优点:大数据量时不会有OOM问题,相比流式查询对数据库单次占用时间较短。
缺点:相比流式查询,对服务端资源消耗更大,响应时间更长。
使用场景
流式查询一般是用到大数据量的场景,基本就是数据迁移和线下的数据计算;线上业务通常用分页查询
112023-02-24
相似问题
B+树范围查询的问题
回答 2
关于redis scan 游标的问题
回答 1
查询优化提问-一个工作中遇到的问题
回答 1
关于多线程的查询缺失的问题
回答 1
对set NX实现分布式锁有个疑问
回答 3