MySQL手册上也有服务器端参数的解释,以及参数值的相关说明信息,现针对我们大家重点需要注意、需要修改或影响性能的服务器端参数,作其用处的解释和 如何配置参数值的推荐,此事情拖了不少时间,为方便大家帮忙纠错(注:总是断断续续写的,可能存在笔误),先以文章的方式发布到网站,后续确定没问题,将 会通过新浪微博的微盘提供PPT下载,方便学习和参考。 l lower_case_table_names Linux或类Unix平台,对文件名称大小写敏感,也即对数据库、表、存储过程等对象名称大小写敏 感,为减少开发人员的开发成本,为此推荐大家设置该参数使对象名称都自动转换成小写; l max_connect_errors max_connect_errors默认值为10,也即mysqld线程没重新启动过,一台物理服务器只要连接 异常中断累计超过10次,就再也无法连接上mysqld服务,为此建议大家设置此值至少大于等于10W; 若异常中断累计超过参数设置的值,有二种解决办法,执行命令:FLUSH HOSTS;或者重新启动mysqld服务; l interactive_timeout and wait_timeout u interactive_timeout 处于交互状态连接的活动被服务器端强制关闭,而等待的时间,单位:秒; u wait_timeout 与服务器端无交互状态的连接,直到被服务器端强制关闭而等待的时间,此参数只对基于TCP/IP或基于 Socket通信协议建立的连接才有效,单位:秒; u 推荐设置 interactive_timeout = 172800 wait_timeout = 172800 l transaction-isolation and binlog-format u transaction-isolation 可供设置的值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、 SERIALIZABLE,默认的值为: REPEATABLE-READ,事务隔离级别设置的不同,对二进制日志登记格 式影响非常大,详细信息可见文章解读MySQL事务的隔离级别和日志登记模式选择技巧; u binlog-format 复制的模式,可供设置的值:STATEMENT、ROW、MIXED(注:5.0.*只有命令行式复制), 5.1.*版本默认设置:MIXED; u 推荐配置 ① 只读为主的业务应用场景 transaction-isolation = read-committed binlog-format = mixed #5.1.*版本,5.0.*只能设置为 statement ① 非只读为主的业务应用场景 transaction-isolation = repeatabled-read binlog-format = mixed #5.1.*版本,5.0.*只能设置为 statement l event_scheduler 事务调度默认是关闭状态,也推荐源码编译的版本可不编译进来,以及实际生产环境保持默认禁用 状态,当真正需要用的时候,可以临时打开,命令:SET GLOBAL event_scheduler=1; l skip_external_locking 外部锁,也即操作系统所实施的锁,只对MyISAM引擎有效,且容易造成死锁发生,为此我们一律禁用; l innodb_adaptive_hash_index InnoDB引擎会根据数据的访问频繁度,把表的数据逐渐缓到内存,若是一张表的数据大量缓存在 内存中,则使用散列索引(注:Hash Index)会更高效。InnoDB内有Hash Index机制,监控数据的访 问情况,可以自动创建和维护一个Hash Index,以提供访问效率,减少内存的使用; l innodb_max_dirty_pages_pct InnoDB主线程直接更新Innodb_buffer_pool_size中存在的数据,并且不实时刷回磁盘,而是等待 相关的处罚事件发生,则允许缓存空间的数据量不实时刷回磁盘的最大百分比。比例设置较小,有利于 减少mysqld服务出现问题的时候恢复时间,缺点则是需要更多的物理I/O,为此我们必须根据业务特点 和可承受范围进行一个折中,一般范围建议设置为5%~90%,像我们SNS游戏行业的写非常厉害,综合 各方面因素,设置为20%; (责任编辑:IT) |