文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


第 10 章 优化

目录

10.1 优化概述
10.2 优化 SQL 语句
10.2.1 优化 SELECT 语句
10.2.2 优化子查询、派生表、视图引用和公用表表达式
10.2.3 优化 INFORMATION_SCHEMA 查询
10.2.4 优化 Performance Schema 查询
10.2.5 优化数据更改语句
10.2.6 优化数据库权限
10.2.7 其他优化技巧
10.3 优化和索引
10.3.1 MySQL 如何使用索引
10.3.2 主键优化
10.3.3 SPATIAL 索引优化
10.3.4 外键优化
10.3.5 列索引
10.3.6 多列索引
10.3.7 验证索引使用情况
10.3.8 InnoDB 和 MyISAM 索引统计信息收集
10.3.9 比较 B 树和哈希索引
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 集群线程状态
10.14.9 事件调度程序线程状态

本章解释了如何优化 MySQL 性能并提供了一些示例。优化包括在多个级别上配置、调整和衡量性能。根据您的工作角色(开发人员、DBA 或两者的结合),您可以在单个 SQL 语句、整个应用程序、单个数据库服务器或多个联网数据库服务器级别进行优化。有时,您可以主动提前计划性能,而其他时候,您可能需要在出现问题后对配置或代码问题进行故障排除。优化 CPU 和内存使用还可以提高可扩展性,使数据库能够处理更多负载而不会变慢。