云数据库 RDS-RDS for MySQL参数调优建议:修改敏感参数

时间:2024-12-20 17:08:32

修改敏感参数

若干参数相关说明如下:

  • “lower_case_table_names”

    云数据库默认值“1”

    作用:该参数表示创建库和表时,表名存储是否大小写敏感。默认值“1”,表示创建库和表时,表名默认存储为小写,且不区分大小写。

    RDS for MySQL 8.0版本不支持修改该参数。

    影响:修改该参数可能会导致主从复制异常,请谨慎修改。如果必须要修改,请根据以下场景设置数据库参数:

    • 参数值从1变为0的设置顺序:先修改和重启只读库,后修改和重启主库。
    • 参数值从0变为1的设置顺序:先修改和重启主库,在主库执行SELECT @@GLOBAL.GTID_EXECUTED。然后在只读库执行SELECT @@GLOBAL.GTID_EXECUTED,直到结果集合大于或者等于主库的SELECT @@GLOBAL.GTID_EXECUTED的结果集合,再修改和重启只读库。
  • “innodb_flush_log_at_trx_commit”

    云数据库默认值:“1”

    作用:该参数控制提交操作在严格遵守ACID合规性和高性能之间的平衡。设置为默认值“1”,是为了保证完整的ACID,每次提交事务时,把事务日志从缓存区写到日志文件中,并刷新日志文件的数据到磁盘上;当设为“0”时,每秒把事务日志缓存区的数据写入日志文件,并刷新到磁盘;如果设为“2”,每次提交事务都会把事务日志从缓存区写入日志文件,每隔一秒左右会刷新到磁盘。

    影响:参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致数据丢失。

    POC建议值“2”

  • “sync_binlog”

    云数据库默认值“1”

    作用:该参数控制MySQL服务器将二进制日志同步到磁盘的频率。设置为默认值“1”,表示MySQL每次提交事务时,将Binlog同步写入磁盘,是最安全的设置;值为“0”时性能最好,表示MySQL不控制Binlog的刷新,由文件系统自己控制其缓存的刷新。此时的性能最好,但风险最大,因为一旦断电或操作系统崩溃,在“binlog_cache”中的所有Binlog信息都会被丢失。

    影响:参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致binlog丢失。

    POC建议值“1000”

  • “innodb_large_prefix”

    云数据库默认值“OFF”

    作用:InnoDB表允许单列索引的最大长度。

    仅RDS for MySQL 5.6版本支持该参数。

    影响:在DDL执行时修改该参数,有可能会导致主从复制异常,请谨慎修改。如果必须要修改,请根据以下场景设置数据库参数:

    • 参数值从OFF变为ON的设置顺序:先修改只读库,后修改主库。
    • 参数值从ON变为OFF的设置顺序:先修改主库,后修改只读库。
  • “innodb_buffer_pool_size”

    云数据库默认值“规格参数,不同实例规格默认值也不同”

    作用:该参数为Innodb缓冲池大小,用来缓存表和索引数据的内存区域,增加该值可减少磁盘I/O。

    影响:过大的buffer pool可能导致系统崩溃,请谨慎修改。

    POC建议值:32G及以上规格可将其调整至内存的70%~75%。

support.huaweicloud.com/usermanual-rds/rds_08_00001.html