大量数据分页

mysql--------大数据量分页sql语句优化

岁酱吖の 提交于 2019-12-01 19:28:50
分页程序原理很简单,这里就不多说了,本篇文章主要说的是在数据表记录量比较大的情况下,如何将分页SQL做到更优化,让MySQL执行的更快的方法。 一般的情况下,我们的分页SQL语句是这样的: SELECT * FROM table ORDER BY id LIMIT 1000,10; 以上SQL语句在原理上和在实际操作中是不会存在什么问题,但是当table表的数据量达到几十万以上的时候,上面的语句执行一遍,可能会要执行个十几秒的时间,并且当页数越靠后的话,执行的时间会越长,这个时候我们就需要找到一种更快的查询办法来替代这种操作了。 网上已经有很多优化的方法,基本都是这样的: SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10; 以上SQL语句是一个不错的解决方法,分页查询的速度基本会保持在1秒之内,但据经验总结得出还有一种更好的办法,如下: SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010; 相比以上的解决办法,在速度上还会快了不少。 另外分享两个关于查询的技巧: (1)如果需要查询 id 不是连续的一段,最佳的做法就是先找出 id ,然后用 in 查询: SELECT * FROM table WHERE id