GaussDB(for MySQL)参数调优建议
数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明,更多参数详细说明,请参见MySQL官网。
通过控制台界面修改GaussDB(for MySQL)参数值,请参见修改GaussDB(for MySQL)实例参数。
修改性能参数
- innodb_flush_log_at_trx_commit
作用:该参数控制提交操作在严格遵守ACID合规性和高性能之间的平衡。
设置为默认值1时,是为了保证完整的ACID,每次提交事务时,把log buffer中的数据从缓存区写到日志文件中,并刷新日志文件的数据到分布式存储上。
当设为0时,InnoDB每秒钟将log buffer中的数据写入日志文件,并刷新到分布式存储上。
当设为2时,InnoDB在每次事务提交时将log buffer中的数据更新到文件系统缓存中,每秒钟并刷新到分布式存储上。
影响:参数设置为非默认值1时,降低了数据安全性,在系统崩溃的情况下,可能导致丢失1秒钟的事务。
POC建议值:0,可以显著提升低并发写入性能。
- rds_global_sql_log_bin
作用:该参数控制动态开启/关闭Binlog。GaussDB(for MySQL)采用共享存储架构,主节点和只读节点不依赖于Binlog进行数据同步。当用户不需要Binlog时,可以通过此开关动态关闭Binlog。
设置为默认值OFF时,动态关闭Binlog,不需要重启(在已有的连接和新连接上都生效)。
当设置为ON时,动态开启Binlog,不需要重启(在已有的连接和新连接上都生效)。
影响:当客户不需要Binlog时,可以动态关闭Binlog,对该实例无影响。
POC建议值:OFF,可以提升写入性能。
- 2.0.42.230601及之前的版本默认开启Binlog,可以通过参数log-bin关闭或开启Binlog,修改该参数需要重启。
- 2.0.45.230900及以后版本默认关闭Binlog,可以通过参数rds_global_sql_log_bin动态开启或关闭Binlog。
- rds_plan_cache
作用:Plan Cache特性是缓存Prepare Statement的执行计划,减少优化器重新生成执行计划来提升查询性能。
当rds_plan_cache设置为ON,Prepare Statement的执行计划会被缓存,下一次Execute时可以重新利用缓存的执行计划,提升查询性能。
影响:提升Prepare Statement语句的查询性能,对sysbench的select_random_ranges测试模型提升效果显著。
POC建议值:ON,可以提升查询性能。
- 2.0.51.240300及以后版本,可以开启此特性。
- rds_plan_cache用的不是innnodb_buffer内存,用的是stmt mem内存区域分配的内存。
- rds_plan_cache_allow_change_ratio:当查询访问的表数据发生变化,例如DML语句导致表数据发生变化,变化比例超过此参数设置的阈值时,plan cache会失效。设置为0,表示不受表数据变化比例的影响,一直生效。