重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

百万数据下mysql分页问题

时间:2020-09-23 02:00:06 作者:重庆seo小潘 来源:
在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读

在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读取。在使用limit进行分页的测试过程中,得到以下数据:select * from news order by id desc limit 0,10耗时0.003秒select * from news order by id desc limit 10000,10耗时0.058秒select * from news order by id desc limit 100000,10 耗时0.575秒select * from news order by id desc limit 1000000,10耗时7.28秒我们惊讶的发现mysql在数据量大的情况下分页起点越大查询速度越慢,100万条起的查询速度已经需要7秒钟。这是一个我们无法接受的数值!

改进方案 1select * from news where id >(select id from news order by id desclimit 1000000, 1)order by id desc limit 0,10查询时间 0.365秒,提升效率是非常明显的!!原理是什么呢???

我们使用条件对id进行了筛选,在子查询 (select id from news order by id desc limit 1000000, 1) 中我们只查询了id这一个字段比起select * 或 select 多个字段 节省了大量的查询开销!

改进方案2

适合id连续的系统,速度极快!select * from news where idbetween 1000000 and 1000010 order by id desc不适合带有条件的、id不连续的查询。速度非常快!以上就是百万数据下mysql分页问题的详细内容,更多请关注小潘博客其它相关文章!