MySQL分页查询

2022年12月25日09:56:27

MySQL数据库分页查询

—以h_address表为例

方法1:使用基本方法LIMIT

表中的数据:
MySQL分页查询
使用分页查询,如下:

SELECT * from user LIMIT 1,2;

LIMIT是关键字,用来进行分页查询。
后面“1,2”中:
前面的“1”是从多少个索引开始(第一条的索引是从0开始);
后面的"2"是要展示多少条数据


选取范围如下:
MySQL分页查询
最终结果:
MySQL分页查询

  1. 可以试着在查询语句加上where、order by等条件,可以进行筛选和排序,在定程度上也是一种优化
  2. 但是这样会有弊端,如果你要的数据量很大,如果是LIMIT 200000,200,需要扫描200200行,如果在一个高并发的应用里,每次查询需要扫描超过20W行,效率十分低下。

方法2:虽然扫描的数据量少了,但是在某些需要跳转到多少也得时候就无法实现,这时还是需要用到方法1,既然不能避免,那么我们可以考虑尽量减小m的值,因此我们可以给这条语句加上一个条件限制。是的每次扫描不用从第一条开始。这样就能尽量减少扫描的数据量。

例如:每页10条数据,当前是第10页,当前条目ID的最大值是109,最小值是100.(当前100-109)
那么跳到第9页:(由于我的表数据不多,就不展示图片了)

select * from h_address where deptno<100 order by id desc limit 0,10;   //倒序

那么跳到第8页:

select * from h_address where deptno<100 order by id desc limit 10,10;

那么跳到第11页:

select * from h_address where deptno>109 order by id asc limit 0,10;

小伙伴们可以多多尝试一下。

  • 作者:你虎哥还是你虎哥
  • 原文链接:https://blog.csdn.net/weixin_44098851/article/details/103384450
    更新时间:2022年12月25日09:56:27 ,共 710 字。