《高性能MySQL》第八章 优化服务器设置

创建一个号的配置最快的方法,是从理解mySQL内核和行为开始。
加入我的服务器有32GB内存,12核CPU,怎么样配置最好?

8.1 MySQL配置的工作原理

任何打算长期使用的配置应该用全局配置文件,否则会有忘记的风险。(对!)
/etc/my.cnf /etc/mysql/my.cnf

一定要清楚的知道服务器配置文件的位置,以及其读取顺序。

mysqlmanager可以一个服务器多个配置实例。

8.1.1 语法、作用域和动态性

配置项使用小写可用-分开和_分割开。

《高性能MySQL》第八章 优化服务器设置
在mysql运行时修改的,最终要记得改文件,不然会失效。
每次更改后,SHOW GLOBAL VARIABLES的输出确认是否更改(好习惯!)

8.1.2 设置变量的副作用

动态设置变量可能导致副作用,例如从缓冲中刷走在新脏块。

《高性能MySQL》第八章 优化服务器设置
srot_buffer_size\read_buffer_size\query_buffer_size…

8.1.3 入门

《高性能MySQL》第八章 优化服务器设置

8.1.4 通过基准测试迭代优化

《高性能MySQL》第八章 优化服务器设置

8.2 什么不该做

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置

8.3 创建MySQL配置文件

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置

8.3.1 检查MySQL服务器状态变量

《高性能MySQL》第八章 优化服务器设置

8.4 配置内存使用

《高性能MySQL》第八章 优化服务器设置

8.4.1 MySQL 可以使用多少内存?

《高性能MySQL》第八章 优化服务器设置

8.4.2 每个连接需要的内存

《高性能MySQL》第八章 优化服务器设置

8.4.3 为操作系统保留内存

《高性能MySQL》第八章 优化服务器设置

8.4.4 为缓存分配内存

《高性能MySQL》第八章 优化服务器设置

8.4.5 InnoDB缓冲池

《高性能MySQL》第八章 优化服务器设置

8.4.6 MyISAM键缓存

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置

8.4.7 线程缓存

《高性能MySQL》第八章 优化服务器设置

8.4.8 表缓存

《高性能MySQL》第八章 优化服务器设置

8.4.9 InnoDB数据字典

《高性能MySQL》第八章 优化服务器设置

8.5配置MySQL的IO行为

8.5.1 InnoDB IO配置

《高性能MySQL》第八章 优化服务器设置
机械硬盘,随机IO比顺序IO贵得多,IO请求要时间把磁头移动到正确位置。

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置
这个InnoDB的缓冲,除了事务日志,其他真的没有共鸣00.。

8.5.2 MyISAM的IO配置

《高性能MySQL》第八章 优化服务器设置

8.6 配置MySQL并发

8.6.1 InnoDB并发设置

《高性能MySQL》第八章 优化服务器设置

8.6.2 MyISAM并发配置

《高性能MySQL》第八章 优化服务器设置

8.7 基于工作负载的配置

《高性能MySQL》第八章 优化服务器设置

8.7.1 优化BLOB和TEXT的场景

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置

8.7.2 优化排序

《高性能MySQL》第八章 优化服务器设置

8.8 完成基本配置

《高性能MySQL》第八章 优化服务器设置
tmp_table_size\max_heap_table_size
max_connection
thread_cache_size
table_cache_size

8.9 安全和稳定的配置

expire_logs_days
max_allowed_packet
max_connect_errors
skip_name_resolve
sql_mode

8.10高级InnoDB设置

《高性能MySQL》第八章 优化服务器设置

8.11 总结

《高性能MySQL》第八章 优化服务器设置
《高性能MySQL》第八章 优化服务器设置