高性能参数模板简介
由于关系数据库MySQL版参数比较多,针对特定场景进行参数适配的学习成本比较高。为了满足客户对数据库性能的需求,关系数据库MySQL版推出了高性能参数模板,您可以将高性能参数模板直接应用于实例,或者基于该模板进一步配置参数组。
在通常情况下,高性能参数模板能够提升数据库的性能。
高性能参数说明
数据库版本5.7和8.0的相关高性能参数说明如下:
- binlog_cache_size:在事务中,为二进制日志存储SQL语句的缓存容量。该参数必须设置为2的幂次方。高性能参数模板将其默认值设置为较大值以提高性能。
高性能模板参数取值 | 默认参数值 |
---|---|
2097152 | 32768 |
- innodb_flush_log_at_trx_commit: 该参数控制提交操作在严格遵守ACID合规性和高性能之间的平衡,此变量用于控制Redo Log向磁盘刷写的策略。
高性能模板参数取值 | 默认参数值 |
---|---|
2 | 1 |
值为1:每次事务提交时,关系数据库MySQL版都会把日志缓存区的数据写入日志文件中,并且刷新到磁盘中。该值为默认参数模板的取值。
值为2:每次事务提交时,关系数据库MySQL版都会把日志缓存区的数据写入日志文件中,但是并不会同时刷新到磁盘上。该模式下,MySQL会每秒执行一次刷新磁盘操作。
说明
当设置为1,该模式是最安全的,但也是最慢的一种方式。在mysqld服务崩溃或者服务器主机宕机的情况下,日志缓存区只有可能丢失最多一个语句或者一个事务;
当设置为2,该模式速度较快,较取值为0情况下更安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失;
- sync_binlog:该参数控制MySQL服务器将二进制日志同步到磁盘的频率。
高性能模板参数取值 | 默认参数值 |
---|---|
1000 | 1 |
值为1:每次binlog写入后,都与磁盘同步、进行落盘。该值为默认参数模板的取值。
值为N:使binlog在每N次binlog日志文件写入后与磁盘同步。N=1000为高性能参数模板的取值。
说明
“innodb_flush_log_at_trx_commit”和“sync_binlog”两个参数设置为1的时候,安全性最高,写入性能最差。在mysqld服务崩溃或者服务器主机宕机的情况下,日志缓存区只有可能丢失最多一个语句或者一个事务。但是会导致频繁的磁盘写入操作,因此该模式也是最慢的一种方式。
当sync_binlog=N(N>1 ),innodb_flush_log_at_trx_commit=2时,在当前模式下关系数据库MySQL版的写操作才能达到最高性能。
影响和风险
- 当innodb_flush_log_at_trx_commit参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致数据丢失。
- 当sync_binlog参数设置为非默认值“1”时,降低了数据安全性,在系统崩溃的情况下,可能导致binlog丢失。
操作步骤
实例数据库版本为5.7或者8.0,都可按照如下步骤进行设置高性能参数模板。
说明当前仅华北2、上海36资源池支持该功能。
- 进入关系数据库MySQL版管理控制台;
- 点击左侧边栏“参数模板”;
- 可以看到参数模板中有名称为“57-High-Performance”和“80-High-Performance”的参数组,该参数组为高性能参数组;
- 点击参数组右侧的应用,可以应用到相应版本的实例;
- 也可点击”更多“中的复制,自行根据高性能参数模板创建参数组。