MySQL 实现分页查询

SQL分页查询:

背景

​ 在公司的系统中有一个平台是 做配置管理的 就是所谓的 CRUD 的平台,但是点击后进去到页面第一次看到的是一次查询的页面 (点击页面自动的触发查询的功能) 后面就可以你的CRUD的操作是给运营的同事来操作的,但是一般的是我们数据量比较的少的业务是之间查询出来所有的数据,直接返回给前端的让他自己做分页的,但是有一些数据量达到上万级别的时候,不能让他们乱搞了,必须要用到给我多加入两个参数了

解决方法

非常的简单的加入两个参数 (1) 页数 (2) 每页的查询的数量 (后端都有默认值防止不传)

service需要的处理

处理方式非常的简单的 在sql 中进行抽取一下

查询全部的数据 没有加入分页

​加入分页的 这里特别需要注意的是:

分页的查询 第一个是页数,每页的数量 这里的页数需要处理一下有个公式 sql写入的页数 = (页数-1) * 每页的数量

sql 是如何处理的

  • 第一种
SELECT * FROM test_user_info limit 0,4;
  • 第二种

有时候 通过分页是可以解决 大多数的情况,但是我们可以预测到数据到哪一步,就是从哪里开始适合大量数据的表中, 我们稍微改一下SQL

加入 启始的 id 开始 每次获取 4条数据

SELECT * FROM test_user_info WHERE id > 32 limit 4;

​ 还有 普通的查询的时候知道是一条数据的时候 在后面加入 limit 1 sql执行速度更快

这是一个明显的对比了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程宝库

本方案只适应于小的项目、项目未上线或者紧急情况下可采用这种方式,一旦开启慢日志查询会增加数据库的压力,所以一般采用后台对数据操作时间写入日志文件中,每一周定时进行清除日志。mysql优化方案:开启慢查询日志,查询s ...