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

mysql深度分页优化

在这里插入图片描述
1:最基本的,列表查询只返回需要展示的字段,尽量少关联,筛选条件尽量放主表,例如这个sql,ac.catalog_id, e.content字段不需要列表展示,而且e.content字段数据量大,导致网络传输变慢
在这里插入图片描述

2:如果表的主键是自增的话,可以在前端查询时传上一页的最后一条记录的ID,例如:

SELECT
	a.id,
	a.title,
	a.cover_image,
	a.publish_dt,
	a.article_status,
	a.create_time,
	a.create_user_name,
	a.create_user,
	a.create_data_source,
	a.intro,
	a.view_count,
	a.collect_count,
	a.praise_count,
	a.sort
FROM cms_article a
WHERE id > ?
ORDER BY id DESC
LIMIT ?;

3:使用子查询,可以先查出要的记录的id,然后再提取这些id的记录,这样的效率也可以

SELECT
	a.id,
	a.title,
	a.cover_image,
	a.publish_dt,
	a.article_status,
	a.create_time,
	a.create_user_name,
	a.create_user,
	a.create_data_source,
	a.intro,
	a.view_count,
	a.collect_count,
	a.praise_count,
	a.sort
FROM cms_article a		
JOIN (SELECT id FROM cms_article ORDER BY id DESC limit ?,?) sub 
on a.id = sub.id	

4:业务上的优化,需要前端配合,比如当limit到1000以后,服务端一次返回500条或1000条记录,前端每次只展示10条20条,不需要一直与服务端做交互了,只是某一次查询的时候比较慢,这种就看业务是否能接受。

5:索引覆盖,查询的列如果时索引列,这样子不需要回表查性能也很高

6:参考一些市面上热门的产品,例如记录只限查询半年前或一年前的记录,再之后的记录就不能查询


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

相关文章:

  • 【DFS】个人练习-Leetcode-646. Maximum Length of Pair Chain
  • 前端---CSS(部分用法)
  • C#中的异步操作
  • C++设计模式-策略模式-StrategyMethod
  • 【Google Cloud】Private Service Connect 托管式服务
  • 【Pytest+Yaml+Allure】实现接口自动化测试框架
  • FPGA中的电平标准
  • nodejs第三方库sharp对图片的操作生成新图片、压缩、添加文字水印及图片水印等
  • 第二十二课 Vue中的组件切换
  • C#中面试的常见问题007
  • redis工程实战介绍(含面试题)
  • 【es6】原生js在页面上画矩形层级等问题的优化(二)
  • C# 程序来计算三角形的面积(Program to find area of a triangle)
  • 数据结构 (11)串的基本概念
  • 异或-java-leetcode
  • 从攻击视角探讨ChatGPT对网络安全的影响
  • c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享
  • C++:哈希-->unordered_map/unordered_set
  • POA-CNN-SVM鹈鹕算法优化卷积神经网络结合支持向量机多特征分类预测
  • 2039:【例5.6】冒泡排序
  • Dubbo的RPC泛化调用
  • apache、iis规则设置防盗链
  • 实现 Browser 客户端下载 XML 文件功能
  • 基于NXP LS1043 OpenWRT智能交通边缘网关设计
  • Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
  • mcu 测试