Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  Optimization

第10章 优化

目录

10.1 优化概述
10.2 优化 SQL 语句
10.2.1 优化 SELECT 语句
10.2.2 优化子查询、派生表、视图引用和公共表表达式
10.2.3 优化 INFORMATION_SCHEMA 查询
10.2.4 优化性能架构查询
10.2.5 优化数据更改语句
10.2.6 优化数据库权限
10.2.7 其他优化技巧
10.3 优化和索引
10.3.1 MySQL 如何使用索引
10.3.2 主键优化
10.3.3 空间索引优化
10.3.4 外键优化
10.3.5 列索引
10.3.6 多列索引
10.3.7 验证索引使用情况
10.3.8 InnoDB 和 MyISAM 索引统计信息收集
10.3.9 B-Tree 和哈希索引的比较
10.3.10 索引扩展的使用
10.3.11 优化器使用生成列索引
10.3.12 隐藏索引
10.3.13 降序索引
10.3.14 TIMESTAMP 列的索引查找
10.4 优化数据库结构
10.4.1 优化数据大小
10.4.2 优化 MySQL 数据类型
10.4.3 优化多表
10.4.4 MySQL 中内部临时表的使用
10.4.5 数据库和表的数量限制
10.4.6 表大小限制
10.4.7 表列数和行大小限制
10.5 优化 InnoDB 表
10.5.1 优化 InnoDB 存储布局
10.5.2 优化 InnoDB 事务管理
10.5.3 优化 InnoDB 只读事务
10.5.4 优化 InnoDB 重做日志
10.5.5 批量加载 InnoDB 表数据
10.5.6 优化 InnoDB 查询
10.5.7 优化 InnoDB DDL 操作
10.5.8 优化 InnoDB 磁盘 I/O
10.5.9 优化 InnoDB 配置变量
10.5.10 优化 InnoDB 多表系统
10.6 优化 MyISAM 表
10.6.1 MyISAM查询优化
10.6.2 MyISAM表批量数据加载
10.6.3 REPAIR TABLE语句优化
10.7 MEMORY表优化
10.8 查询执行计划
10.8.1 使用EXPLAIN优化查询
10.8.2 EXPLAIN输出格式
10.8.3 扩展的EXPLAIN输出格式
10.8.4 获取命名连接的执行计划信息
10.8.5 估算查询性能
10.9 控制查询优化器
10.9.1 控制查询计划评估
10.9.2 可切换的优化
10.9.3 优化器提示
10.9.4 索引提示
10.9.5 优化器成本模型
10.9.6 优化器统计信息
10.10 缓冲和缓存
10.10.1 InnoDB缓冲池优化
10.10.2 MyISAM键缓存
10.10.3 预备语句和存储程序的缓存
10.11 锁定操作优化
10.11.1 内部锁定方法
10.11.2 表锁定问题
10.11.3 并发插入
10.11.4 元数据锁定
10.11.5 外部锁定
10.12 MySQL服务器优化
10.12.1 磁盘I/O优化
10.12.2 使用符号链接
10.12.3 内存使用优化
10.13 性能测量(基准测试)
10.13.1 测量表达式和函数的速度
10.13.2 使用自定义基准测试
10.13.3 使用performance_schema测量性能
10.14 查看服务器线程(进程)信息
10.14.1 访问进程列表
10.14.2 线程命令值
10.14.3 一般线程状态
10.14.4 复制源线程状态
10.14.5 复制I/O(接收器)线程状态
10.14.6 复制SQL线程状态
10.14.7 复制连接线程状态
10.14.8 NDB Cluster线程状态
10.14.9 事件调度器线程状态

本章节解释如何优化 MySQL 性能,并提供示例。优化涉及到配置、调整和测量性能,在多个级别上。根据您的职责角色(开发者、DBA 或两者的结合),您可能会在单个 SQL 语句、整个应用程序、单个数据库服务器或多个网络数据库服务器级别上进行优化。有时您可以提前规划性能,而其他时候您可能需要在问题发生后对配置或代码问题进行故障排除。优化 CPU 和内存使用也可以提高可扩展性,使数据库能够处理更多负载而不减慢。