mysql优化的方向
- 索引
- 表结构
- 配置
- 硬件
索引
-
索引的合理性
-
- 区分度
-
- 索引字段大小
-
- 索引数量
-
- 联合索引
-
索引的命中情况
-
- explain
-
- show profiles + show profiling for query
表结构
- 合适的数据类型
- 避免数据量过大
配置
-
1、mysql server的buffer pool
-
- 如何查看buffer pool是否太小了
-
-
show status like '%Innodb_buffer_pool_%'
Innodb_buffer_pool_read_requests 读请求次数
Innodb_buffer_pool_reads 从物理磁盘读请求次数
-
-
-
buffer pool 命中率 = 1 - (Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100%
一般低于99%,则需要调整
-
-
- 如何设置buffer pool 大小
-
-
set global innodb_buffer_pool_size = 536870912;
-
-
2、应用程序连接池大小、server最大连接数
-
3、server 层的query cache,不建议打开了,8.0已经删除了这个功能
硬件
- mysql server 服务器的cpu、内存等资源