700W 数据的表,如何做分页查询,速度不低于 1s

2021-07-14 12:15:41 +08:00
 kikione

mysql ,700W 数据的表,如何做分页查询,速度不低于 1s

7106 次点击
所在节点    程序员
45 条回复
v2hh
2021-07-15 11:48:21 +08:00
生产一千多万的数据,查询时间在 500 ~ 800ms, 合理利用索引,干掉复杂查询
tonghuashuai
2021-07-15 13:11:02 +08:00
不用 limit 使用 ID 做 cursor
byte10
2021-07-15 15:09:14 +08:00
评论少了一个方案。
1 、首先你单表做查询完全不是问题,有索引足够快了,每次查询带上上一次的索引值即可。
2 、但是如果你想看到好几万页的数据怎么办?这个其实就是 mongodb 那种分布式数据库的 分页方案了,你创建一个新的表去维护这个大表的分页 ID 就可以了(如果数据经常写入和删除的话,这维护的成本还是挺高的,适合读多写少的),完全不是问题。
3 、其他的答案就是 ES,HBase 这种数据库作为首选,或者备份。
yagamil
2021-07-15 15:49:50 +08:00
用 es limit 也不是后面会越来越慢的吗?
用 id 作为条件分页 应该还好吧
liuyx7894
2021-07-15 18:11:38 +08:00
加索引就足够快了,通过 id 来翻页,
我们单表单库两亿多数据
select max(id) from xxx; 262992300 条
select * from xxx where id > 262991800 limit 10;
通过这种方式来检索 0.041s

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/789448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX