news 2026/9/8 9:28:03

MySQL调优实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL调优实践
  • sql的书写顺序和执行顺序
SELECT[DISTINCT]字段/表达式-- 5. 筛选返回的字段FROM表名[别名]-- 1. 指定查询的数据源表[JOIN关联表[别名]ON关联条件]-- 2. 执行表关联操作WHERE过滤条件-- 3. 过滤行数据(分组前)GROUPBY分组字段-- 4. 按字段分组HAVING分组过滤条件-- 6. 过滤分组结果(分组后)ORDERBY排序字段[ASC/DESC]-- 7. 对结果集排序LIMIT/OFFSET分页参数-- 8. 限制返回行数(不同数据库关键字有差异)

mysql中的索引

  1. 主键索引(PRIMARY KEY)
  • 唯一标识表中每行数据,一张表只能有一个;
  • 主键字段非空(NOT NULL)且唯一,InnoDB 中主键索引是聚簇索引,性能最优;
  • 建议使用自增 INT/BIGINT 作为主键(避免页分裂),而非 UUID(无序,导致索引碎片)。
  1. 唯一索引(UNIQUE)
  • 保证索引列的值唯一(允许 NULL,多个 NULL 不冲突);
  • 一张表可创建多个唯一索引;
  • 适用场景:手机号、邮箱等需唯一约束的字段,既保证唯一性,又加速查询。
  1. 普通索引(INDEX)
  • 最基础的索引,无唯一性、非空约束,仅用于加速查询;
  • 一张表可创建多个,适用于频繁作为查询条件的字段(如订单表的 user_id)。
  1. 组合索引(复合索引)
  • 基于多个字段创建的索引(如INDEX idx_name_age (name, age));
  • 遵循「最左前缀原则」:查询条件需匹配索引字段的最左列开始的连续子集(如WHERE name='张三’可用,WHERE age=20不可用);
  • 适用场景:多字段联合查询(如WHERE name=‘张三’ AND age=20),减少回表次数。
  1. 前缀索引
  • 对字符串类型字段的前 N 个字符创建索引(如INDEX idx_name (name(10)));
  • 优点:减少索引占用空间,提升索引效率;
  • 缺点:无法用于排序 / 分组(若前缀长度不足);
  • 适用场景:长字符串字段(如手机号、身份证号,前几位已能区分)。
  1. 覆盖索引
  • 不是独立的索引类型,而是一种查询优化场景:索引包含查询所需的所有字段(如查询SELECT id, name FROM user WHERE age=20,若有INDEX idx_age_name (age, name),则无需回表);
  • 优点:避免回表,大幅提升查询效率;
  • 适用场景:高频查询且字段较少的场景(如列表页查询)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 0:39:32

Docker 安装 Ubuntu

Docker 安装 Ubuntu 引言 Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。本文将详细介绍如何在 Docker 中安装 Ubuntu 操作系统。 系统要求 在开始安装之前,…

作者头像 李华
网站建设 2026/9/4 2:55:35

Bootstrap5 按钮组

Bootstrap5 按钮组 Bootstrap 是一个广泛使用的开源前端框架,它为网页设计提供了丰富的组件和工具。在 Bootstrap5 中,按钮组是一个非常重要的组件,它允许开发者以灵活的方式组织按钮,从而实现更好的用户体验。本文将详细介绍 Bootstrap5 中的按钮组,包括其使用方法、特性…

作者头像 李华
网站建设 2026/9/7 12:38:31

Bootstrap4 创建一个网页

Bootstrap4 创建一个网页 引言 Bootstrap 是一个流行的前端框架,它可以帮助开发者快速构建响应式和移动优先的网页。Bootstrap4 是 Bootstrap 的最新版本,它带来了许多新的特性和改进。本文将详细介绍如何使用 Bootstrap4 创建一个基本的网页。 环境准备 在开始之前,请确…

作者头像 李华
网站建设 2026/9/6 21:17:33

【ROS2】ROS2+Qt6+WebRTC程序依赖库

1、OpenCV 错误信息: CMake Error at CMakeLists.txt:45 (find_package):By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project hasasked CMake to find a package configuration file provided by "OpenCV", butCMake did not find…

作者头像 李华
网站建设 2026/9/6 10:22:11

Java计算机毕设之基于Java+springboot的科研室实验报告管理系统的设计与实现基于SpringBoot和Vue的实验报告管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/9/3 0:32:16

计算机Java毕设实战-基于SpringBoot和Vue的实验报告管理系统的设计与实现学生实验报告管理系统项目标题、实验类型、提交时间【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华