关于这个问题 ,有多种解决方案 ,大家可以在回答的时候尽可能的考虑全面一点。
1. 如果 id 是连续的 ,可以直接使用这样的方式。
select * from order where id > 1000000 limit 10
这种方式其实就是先对数据做过滤 ,然后再 limit ,可以有效提升查询效率
2. 通过 order by+索引来解决
select * from order order by id limit 1000000,10
需要注意 id 是索引列 ,通过索引排序后再 limit ,同样减少了计算次数
3. 从业务层面来考虑,限制页数,一般情况下用户去翻 100W 页来找数据,如果让你 们老板去翻 100w 页,估计第二天就把你开除了。我们通常会通过搜索来优化查找过程。
以上就是这个问题的回答思路,面试的时候不一定要完全陷入到面试官的逻辑中,也可以跳出来思考。