最简单的分页方法是这样的 , 该表中存在5w左右数据 执行时间平均在10s左右,因此该种方式在数据量大的情况下查询效率极低. 优化方式有以下几种 1.此种方式平均在7-8s之间(CreateDate 需建立索引) ,) 2.此种方式大概平均在0.01s ; 3.低于0.01s ,,,,,,,,,,,,,,,,,,,,,) 4.低于1s ,) as A LEFT join exarticletemp B on A.Id =B.Id…
- select * from userinfo limit 20000,10 # 数据越往后越慢 - 索引表中扫: select * from userinfo where id in (select id from userinfo limit 20000,10) # 也慢 - select * from userinfo where id > 20000 limit 10 # 快,但需记录当前页记录的id…
一.背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx limit 1,20.当数据量比较小时(100万以内),无论你翻到哪一页,性能都是很快的.如果查询慢,只要在where条件和order by 的列上加上索引就可以解决.但是,当数据量大的时候(小编遇到的情况是500万数据),如果翻到最后几页,即使加了索引,查询也是非常慢的,这是什么原因导致的呢?我们该如…