记录一下最近写sql时遇到的一些问题。

一般我们在分页的时候最常用的估计就是limit了,但是当偏移量特别大的时候(比如一百万),会导致速度特别慢,这个时候我们可以换一种思路,用别的方式查询就更快。

方法一
方法一最为常用,就是写一个子查询,在子查询里面查出偏移量对应的id,然后limit取出指定数量的数据,比如

select * from t_new_click_card_lingers where id >= (select id from t_new_click_card_lingers ORDER BY id LIMIT 1000000,1) limit 10

方法二

方法二更为切实有效一些,而且对于用户翻页时数据变化导致的数据重复问题有很好的改善。主要是使用id进行分页查询,当翻页的时候,前端把上一页的最后一个id传过来,后端依据这个id进行limit查询,不仅可以命中索引提升效率,而且更为方便简单。这里偷一张大佬的图演示一下


0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据