M

MySQL 性能优化最佳实践

作者:鹿Sir开发工具v5

MySQL 性能优化与最佳实践指南,覆盖查询性能、连接管理、安全、表结构设计、并发锁、数据访问模式、监控诊断与高级特性八大类规则,含错误/正确 SQL 对比与执行计划分析。当用户编写、审查或优化 MySQL 查询、表结构设计或数据库配置时触发。触发词:MySQL、SQL优化、慢查询、索引设计、数据库调优、执行计划。

下载量
293
点赞
73
价格
免费

技能文档

---
name: diegosouzapw-mysql-best-practices
title: MySQL 性能优化最佳实践
description: MySQL 性能优化与最佳实践指南,覆盖查询性能、连接管理、安全、表结构设计、并发锁、数据访问模式、监控诊断与高级特性八大类规则,含错误/正确 SQL 对比与执行计划分析。当用户编写、审查或优化 MySQL 查询、表结构设计或数据库配置时触发。触发词:MySQL、SQL优化、慢查询、索引设计、数据库调优、执行计划。
category: 开发工具
---

# MySQL 性能优化最佳实践

面向开发者的 MySQL 性能优化指南,规则按影响程度分八大类优先级,用于指导查询优化与表结构设计。

## 适用场景

- 编写 SQL 查询或设计表结构
- 建立索引或做查询优化
- 排查数据库性能问题
- 配置连接池或扩容
- 使用 MySQL 特有功能与安全特性

## 技能工作流

### 步骤1:识别问题类别

根据用户描述归类到八大类之一:查询性能(CRITICAL)、连接管理(CRITICAL)、安全(CRITICAL)、表结构设计(HIGH)、并发与锁(MEDIUM-HIGH)、数据访问模式(MEDIUM)、监控诊断(LOW-MEDIUM)、高级特性(LOW)。

### 步骤2:给出错误/正确对比

每个优化建议必须包含:错误写法及其问题说明、正确写法及其原理、必要时附 EXPLAIN 输出或性能指标。规则明细见 [references/rules.md](references/rules.md)。

### 步骤3:执行计划验证

对优化后的查询用 `EXPLAIN`(必要时 `EXPLAIN ANALYZE`)验证:确认索引命中、扫描行数、是否消除全表扫描与 filesort/temporary。

### 步骤4:落地与复查

应用修改后复查关联查询与写入路径,确认优化未引入新的锁竞争或写入代价。

## MySQL 与 PostgreSQL 关键差异

- **JSON**:MySQL 用 `JSON` 类型(非 JSONB),函数为 `JSON_EXTRACT()`、`JSON_CONTAINS()`
- **数组**:MySQL 无原生数组,用 JSON 数组或规范化子表
- **全文检索**:用 `FULLTEXT` 索引 + `MATCH() AGAINST()` 语法
- **UUID**:用 `CHAR(36)` 或 `BINARY(16)`,无原生 UUID 类型
- **字符串匹配**:用 `LIKE`(或 `LIKE BINARY`),无 `ILIKE`
- **类型转换**:用 `CAST()` 函数,无 `::` 操作符
- **窗口函数**:MySQL 8.0+ 支持

## 常用诊断命令

```sql
-- 查看执行计划
EXPLAIN SELECT ...;
EXPLAIN ANALYZE SELECT ...;
-- 查看慢查询与索引使用
SHOW FULL PROCESSLIST;
SHOW INDEX FROM tbl;
-- 未使用索引的监控(sys 库)
SELECT * FROM sys.schema_unused_indexes;
```

## 参考资料

- 官方文档:https://dev.mysql.com/doc/
- 优化章节:https://dev.mysql.com/doc/refman/8.0/en/optimization.html
- EXPLAIN:https://dev.mysql.com/doc/refman/8.0/en/explain.html
- JSON 函数:https://dev.mysql.com/doc/refman/8.0/en/json-functions.html
- 全文检索:https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html

使用说明

# MySQL 性能优化最佳实践

覆盖查询性能、连接管理、安全、表结构、并发锁、数据访问、监控诊断与高级特性八大类规则,含错误/正确 SQL 对比与执行计划验证方法。

## 最简用法

```text
这条慢查询帮我优化:SELECT * FROM orders WHERE user_id=42
```

```text
审查一下这张表的索引设计是否合理
```

## 目录结构

- `SKILL.md`:主工作流(归类 → 对比建议 → 执行计划验证 → 落地复查)
- `references/rules.md`:八大类规则明细与 SQL 示例

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手