当前位置: 首页 > article >正文

分页查询的优化

1.创建索引

首先需要在查询字段和排序字段上创建合适的索引,否则数据库引擎就会扫描整张表,降级为filesort

2.分页优化:记住上次位置

比如:

SELECT * FROM orders ORDER BY created_at DESC LIMIT 10000, 10;

实际上MySQL得先扫描前10000条记录,然后丢掉,再返回后面10条。这就像你在书店找第10001本书,得先把前面的全数一遍。

方案:记住上次位置

SELECT * FROM orders WHERE id > last_id ORDER BY id ASC LIMIT 10;

这样,MySQL可以直接从last_id开始找,不用再从头扫描,性能杠杠的。

如何获取每次开始查找的位置呢?

答案是:从上一次结果中获取最大的那条记录(也就是最后一条记录)

注意:这种方案的适用前提是 -> 查询条件一定要是有序的

3.文件排序优化

当ORDER BY不能直接使用索引进行排序时,MySQL会使用排序算法。会先把需要排序的文件加载到缓存中,因此适当增加sort_buffer_size缓存大小能优化排序性能。


http://www.kler.cn/a/323257.html

相关文章:

  • 基础IO2
  • 关于强化学习的一份介绍
  • 计算机网络 (3)计算机网络的性能
  • 如何在 Ubuntu 上配置 Kotlin 应用环境 ?
  • kafka消费者出现频繁Rebalance
  • linux逻辑卷练习
  • 小爱心换着玩
  • 【python】横截面数据分析及可视化报告示例
  • 拉格朗日插值讲解与MATLAB例程
  • (24)k8s部署mysql
  • django基于python的房价分析可视化系统的设计与开发 h1y0i
  • 洗浴中心澡堂污水处理设备主要包括以下几个步骤
  • 分享一下PHP基本语法总结
  • DERT目标检测源码流程图main.py的执行
  • 微信支付准备工作之内网穿透2024/9/28
  • 面向未来的设计:推动企业架构创新的关键——The Open Group 2024生态系统架构与可持续发展年度大会
  • 了解HTTPS
  • 如何在 Windows 台式机或笔记本电脑上恢复未保存的 Excel 文件
  • 【AI创作组】MATLAB基础语法总结
  • matlab处理语音信号
  • scikit-sparse安装
  • 【LLM多模态】文生视频综述From Sora What We Can See: A Survey of Text-to-Video Generation
  • 万户OA-ezOFFICE fileUpload.controller 任意文件上传漏洞复现
  • 保姆级复现yolov7(论文复现)
  • class 026 哈希表、有序表和比较器的用法
  • Linux云计算 |【第四阶段】PROJECT2-DAY2