digdeep

凡是过去,皆是序幕。Read the fucking manual and source code.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

有个数据量 7107146 的大表,分页使用 limit m,n 越到后面速度越慢。

 

 可以看到使用 limit m,n 的方式进行分页时,翻到最后一页尽然要9.439秒。

尝试了好几种方法,发现最快的方法是:

 

 可以看到由 9.439秒直接下降到 0.061秒。而且这种方法基本不受第几页的影响,第一页和最后一页的速度是一样的。

原理都是,通过 主键 B+树,一般也就2到3层,最多3到4层,也就是说通过B+树 直接定位到 7107046 这一条记录,然后顺序读取100条记录。

第一页和最后一样都是一样的查找路径。

绝对是最优的分页方法。

 

posted on 2021-05-21 17:28  digdeep  阅读(425)  评论(0编辑  收藏  举报
不懂数据库和Web安全的架构师不是一个好的程序员。