在日常的项目开发中,大多数场景,我们采用MYSQL作为持久层存储,但是随着数据量的增加,数据的分页查询效率将会极具的下降,那么我们该如何的进行优化分页查询呢?接下来我将介绍三种,供大家学习。

普通分页

语句

SELECT * FROM table_name WHERE deleted = 0 LIMIT pageNum, pageSize;

场景

这种分页适用于数据量较小的场景,数据量在数百条或者数千条是效果良好。

优点

使用简单,且市面上有大量的插件支持。

缺点

在分页的时候会进行全表扫描,并且存在返回数据结果排序不稳定情况。

主键分页

SELECT * FROM table_name WHERE deleted = 0 AND id > (pageNum * pageSize) LIMIT pageSize;

场景

适用于数据量较大场景。

优点

通过索引扫描进行分页,速度快。

缺点

并不是按照ID进行排序,可能会出现查询漏掉部分数据。

子查询分页

SELECT * FROM table_name WHERE id <=  (SELECT id FROM table_name ORDER BY id desc LIMIT pageNum * pageSize ORDER BY id desc LIMIT pageSize ;

场景

适用于数据量较大场景。

优点

通过先查询id,避免回表过程,增加查询效率,在此对id进行联合查询触发主键索引,提升查询效率。

缺点

需要联合查询,SQL略显复杂。

Mysql 分页总结详解相关推荐

  1. Mysql学习总结(32)——MySQL分页技术详解

    1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大 ...

  2. MySql深分页问题详解

    MySql深分页问题详解 1. 问题描述 2. 问题分析 3. 验证测试 3.1 创建两个表 3.2 创建两个函数 3.3 编写存储过程 3.4 编写存储过程 3.5 创建索引 3.6 验证测试 4. ...

  3. 数据库mysql_row_MYSQL数据库mysql found_row()使用详解

    <MYSQL数据库mysql found_row()使用详解>要点: 本文介绍了MYSQL数据库mysql found_row()使用详解,希望对您有用.如果有疑问,可以联系我们. mys ...

  4. Mysql加锁过程详解(3)-关于mysql 幻读理解

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  5. mysql status改变_mysql 配置详解mysql SHOW STATUS 详解

    1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程. back_log ...

  6. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过 ...

  7. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  8. MySQL的Limit详解(转载)

    MySQL的Limit详解 问题:数据库查询语句,如何只返回一部分数据? Top子句 TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. 在SQL Se ...

  9. Mysql加锁过程详解(2)-关于mysql 幻读理解

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

最新文章

  1. 自动驾驶激光雷达物体检测技术
  2. 计算机设计学校,计算机设计制作大赛
  3. 手机游戏美术外包的四大优点及三大建议
  4. 通俗易懂的堆排序C++实现
  5. 激活BI Content
  6. android顶部标题app_name,如何写一个app通用的title
  7. 苹果Mac出版物设计必备软件:​​​​Affinity Publisher
  8. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_03.入门程序之需求分析
  9. HihoCoder - Floyd算法
  10. basename 从绝对路径中取得文件名
  11. 2021最新!某盘加速下载工具复活了,无需登录,打开即可高速下载(附下载)!
  12. sigmoid/softmax指数运算溢出问题的解决方法
  13. audio接线图解_拒绝做小白 你应该知道的常见音频接口
  14. 红外遥控接收发射原理及ESP8266实现
  15. 两个jquery 类似igoogle的portlets插件
  16. python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250
  17. Elasticsearch查询的基本使用
  18. SEO竞争对手分析及网站SEO优化方案设计分析
  19. GWO(灰狼优化)算法MATLAB源码逐行中文注解()
  20. MosFET/FinFET/GAFET ——鳍式晶体管还能走多远

热门文章

  1. vue 键盘事件监听
  2. 逆向工程师要学什么?
  3. 大一学生HTML5期末大作业——基于HTML+CSS制作传统节日美食13页(美食网站设计与实现)
  4. 基于51单片机LCD1602的简易数字钟
  5. layui表格列动态显示或隐藏
  6. Python计时工具—timeit
  7. 迎检计算机教室解说词,均衡教育督导评估迎检路线及解说词.docx
  8. [UnityShader入门精要读书笔记]15.渐变纹理
  9. 服装erp软件实施的关键因素
  10. 写在达尔文诞辰200周年纪念日