Mysql配置
mysql获取配置信息路径
- 命令行参数
mysql_safe --datadir=/data/sql_data
- 配置文件
mysqld --help --verbose | grep -A 1 'Default options'
mysql配置参数的作用域
- 全局参数
set global 参数名=参数值;
set @@global.参数名:=参数值;
- 会话参数
set [session] 参数名=参数值;
set @@session.参数名:=参数值;
对线程进行分配的
sort_buffer_size 排序缓冲区大小
join_buffer_size 连接缓冲区
read_buffer_size 读缓冲区大小
read_rnd_buffer_size 索引缓冲区大小
如何为缓存池分配内存
Innodb_buffer_pool_size
总内存 -(每个线程所需要的内存*连接数)- 系统保留内存
key_buffer_size (MyISAM表的内存缓存次大小)
select sum(index_length) from information_schema.tables where engine = 'myisam'
I / O 相关配置参数
Innodb I/O 相关配置
Innodb_log_file_size 控制单个事务文件的大小
Innodb_log_files_in_group 控制事务日志的个数
事务日志总大小
Innodb_log_files_in_group * Innodb_log_file_size
Innodb_log_buffer_size 日志缓冲区大小
Innodb_flush_log_at_trx_commit
0:代表每秒进行一次log写入cache,并flush log到磁盘
1【默认】:在每次事务提交执行log写入cache,并flush log到磁盘
2【建议】:每次事务提交,执行log数据写入到cache,每秒执行一次flush log到磁盘
innodb_flush_method = O_DIRECT linux建议设置的值
Innodb_file_per_table = 1 设置表空间 强烈建议设置
Innodb_doublewrite = 1 双写缓存 建议设置
MyISAM I/O 相关配置
delay_key_write
OFF:每次写操作后刷新键缓冲中的脏块到磁盘
ON: 只对在键表时指定了delay_key_write选项的表使用延迟刷新
ALL:对所以MyISAM表都使用延迟键写入
安全相关配置参数
expire_logs_days 指定自动清理binlog的天数
max_allowed_packet 控制Mysql可以接收的包的大小
skip_name_resolve 禁用DNS查找
sysdate_is_now 确保sysdate()返回确定性日期
read_only 禁止非super权限的用户写权限
skip_slave_start 禁用Slave自动恢复
sql_mode 设置Mysql所使用的SQL模式
sync_binlog 控制Mysql如何向磁盘刷新binlog
max_connections 控制允许的最大连接数
tmp_table_size 和 max_heap_table_size