生产环境 MySQL Server 核心参数的配置
⑴ lower_case_table_names
● 推荐理由
GNU/Linux 平台,对数据库、表、存储过程等对象名称大小写敏感
为减少开发人员的开发成本,为此推荐大家设置该参数使对象名称都自动转换成小写
● 参数介绍
取值范围:
为0:区分大小写、Linux 平台默认值
为1:不区分大小写
Linux安装的MySQL的配置文件中(/etc/my.cnf)、是没有lower_case_table_names=1这行的
在Windows安装的MySQL的配置文件中(my.ini)、是有lower_case_table_names=1这行的
所以、特别提醒下、在 Replication 配置下、Master和Slave中该参数应当保持一致!!
⑵ max_connect_errors
● 推荐理由
一台物理服务器只要连接 MySQL 数据库服务器 异常中断累计超过10次,就再也无法连接上mysqld服务
为此建议大家设置此值至少大于等于10
处理方案有 2 :
要么重启mysqld、要么 mysqladmin flush-hosts
● 参数介绍
不过、该参数和安全相关、
某些黑客或许会尝试失败来暴力破解密码、该值如若设置过大会留下可趁之际
⑶ interactive_timeout和wait_timeout
● 推荐理由
如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加
那么、最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误
推荐值:
inactive_timeout=172800
wait_timeout=172800
● 参数介绍
interactive_timeout
参数含义:服务器关闭交互式连接所等待的秒数
wait_timeout
参数含义:服务器关闭非交互式连接所等待的秒数
⑷ transaction-isolation和binlog-format
推荐配置
▼只读为主的业务应用场景
transaction-isolation=read-commited
binlog-format=mixed
▼非只读为主的业务应用场景
transaction-isolation=repeatabled-read
binlog-format=mixed
⑸ innodb_adaptive_hash_index
● 推荐理由
InnoDB引擎会根据数据的访问频繁度,把表的数据逐渐缓到内存,若是一张表的数据大量缓存在内存中
则使用 HASH Index 会更高效
InnoDB内有Hash Index机制,监控数据的访 问情况,可以自动创建和维护一个Hash Index