MySQL参数调优建议 本章节会介绍针对MySQL数据库的参数调优建议。 数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明,更多参数详细说明,请参见MySQL官网。 修改敏感参数 若干参数相关说明如下: “lowercasetablenames” 云数据库默认值:“1”。 作用:该参数表示创建数据库及表时,表存储是否大小写敏感。设置为默认值“1”,表示创建数据库及表时,默认小写,不区分大小写,设置为“0”时,则存储与查询均区分大小写。 说明 8.0版本不支持修改该参数。 影响:修改数据库主实例默认参数值时,用户需要手动同步修改只读实例、通过备份恢复至目标实例的参数。当主实例区分大小写,而只读实例、通过备份恢复至目标实例不区分大小写时,比如主实例先后创建两张表,表名分别为 “abc”、“Abc ”时,会导致数据同步、数据恢复异常,原因为“abc”表名已存在。 “innodbflushlogattrxcommit” 云数据库默认值:“1”。 作用:该参数控制提交操作在严格遵守ACID合规性和高性能之间的平衡。设置为默认值“1”,是为了保证完整的ACID,每次提交事务时,把事务日志从缓存区写到日志文件中,并刷新日志文件的数据到磁盘上;当设为“0”时,每秒把事务日志缓存区的数据写入日志文件,并刷新到磁盘;如果设为“2”,每次提交事务都会把事务日志从缓存区写入日志文件,每隔一秒左右会刷新到磁盘。 影响:参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致数据丢失。 “syncbinlog” 云数据库默认值:“1”。 作用:该参数控制MySQL服务器将二进制日志同步到磁盘的频率。设置为默认值“1”,表示MySQL每次事务提交,binlog同步写入磁盘,是最安全的设置;设置为“0”时,表示MySQL不控制binlog的刷新,由文件系统自己控制其缓存的刷新。此时的性能最好,但风险最大,因为一旦断电或操作系统崩溃,在“binlogcache”中的所有binlog信息都会被丢失。 影响:参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致binlog丢失。