mackjie
(Mackjie)
1
- 【TiDB 版本】:3.0
- 【问题描述】:7000w数据量进行分页查询超级慢
1、查询条件:时间排序 send_date
2、数据自增序列会出现以下对应情况
![image](https://asktug.com/uploads/default/original/2X/0/0d61aa9484094c8c204e521d8a7b2ab7d8305900.png)
![image](https://asktug.com/uploads/default/original/2X/1/187dfb5f4d642758184846b2794f1d41d85df5c8.png)
数据从MongoDB中进行迁移至TiDB,采用异步程序导入,中间也想过自增唯一键作为游标,但是因为因为异步导入也会从出现上面第二种情况
自增唯一键>(pageNum-1) * pageSize
使用 大数据分页查询 会越来越慢,如何调优? 里面的方法(cursor_num>(pageNum-1)* pageSize)就不再适用,使用limit m,n,m小的时候还能接受如果出现上万查询时间超级长,这种情况需要怎么解决吗?
正是因为数据量越来越大,才考虑数据从MongoDB中迁移至TiDB进行优化
mackjie
(Mackjie)
3
这个分页并不能进行数量加大,现在是数据已经从MongoDB中全部导入至TiDB中,然后用户需要根据时间查询一些数据,目前分页就是每页十条信息,而且都是按照时间进行降序排列如果把Id desc去掉就需要用send_date desc排序
yilong
(yi888long)
4
从你给出的查询来看,有几百万的数据,从tikv读取到tidb,还要再做desc排序,再去截取10行展示, 如果有几百万的数据还要分页展示,并且不是前多少行,从中间截取。 这等于要展示至少70万页,这个业务是不是应该可以调整一下?
yilong
(yi888long)
6
这个我觉得,你还是在业务侧优化下,可以考虑使用报表,或者缩短查询时间范围。 应该不会有人会每10条数据,看7万多页吧… 优化的方法,由于不能加大每页的行数,也不能取消desc,觉得考虑从业务上可能更合适些,多谢
system
(system)
关闭
9
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。