數據庫參數是數據庫系統運行的關鍵配置信息,設置不合適的參數值可能會影響業務。本文列舉了一些重要參數說明,更多參數詳細說明,請參見。
修改敏感參數
若干參數相關說明如下:
- “lower_case_table_names”
云數據庫默認值:“1”。
作用:該參數表示創建數據庫及表時,表存儲是否大小寫敏感。設置為默認值“1”,表示創建數據庫及表時,默認小寫,不區分大小寫,設置為“0”時,則存儲與查詢均區分大小寫。
說明8.0版本不支持修改該參數。
影響:修改數據庫主實例默認參數值時,用戶需要手動同步修改只讀實例、通過備份恢復至目標實例的參數。當主實例區分大小寫,而只讀實例、通過備份恢復至目標實例不區分大小寫時,比如主實例先后創建兩張表,表名分別為 “abc”、“Abc ”時,會導致數據同步、數據恢復異常,原因為“abc”表名已存在。
- “innodb_flush_log_at_trx_commit”
云數據庫默認值:“1”。
作用:該參數控制提交操作在嚴格遵守ACID合規性和高性能之間的平衡。設置為默認值“1”,是為了保證完整的ACID,每次提交事務時,把事務日志從緩存區寫到日志文件中,并刷新日志文件的數據到磁盤上;當設為“0”時,每秒把事務日志緩存區的數據寫入日志文件,并刷新到磁盤;如果設為“2”,每次提交事務都會把事務日志從緩存區寫入日志文件,每隔一秒左右會刷新到磁盤。
影響:參數設置為非默認值“1”時,降低了數據安全性,在系統崩潰的情況下,可能導致數據丟失。
- “sync_binlog”
云數據庫默認值:“1”。
作用:該參數控制MySQL服務器將二進制日志同步到磁盤的頻率。設置為默認值“1”,表示MySQL每次事務提交,binlog同步寫入磁盤,是最安全的設置;設置為“0”時,表示MySQL不控制binlog的刷新,由文件系統自己控制其緩存的刷新。此時的性能最好,但風險最大,因為一旦斷電或操作系統崩潰,在“binlog_cache”中的所有binlog信息都會被丟失。
影響:參數設置為非默認值“1”時,降低了數據安全性,在系統崩潰的情況下,可能導致binlog丟失。
修改性能參數
若干參數相關說明如下:
- “innodb_spin_wait_delay”和“query_alloc_block_size”依賴于實例的規格,設置過大時,可能會影響數據庫的使用。
- “key_buffer_size”參數值設置較小(小于4096),參數值將修改失敗。
- “max_connections”參數值設置較小,將影響數據庫訪問。
- “innodb_buffer_pool_size”、“max_connections”和“back_log”參數依賴于實例的規格,實例規格不同對應其默認值也不同。因此,這些參數在用戶未設置前顯示為“default”。
- “innodb_io_capacity_max”、“innodb_io_capacity”參數依賴于磁盤類型,用戶未設置前顯示為“default”。