参数模板支持如下功能。
·支持默认参数模板,包含高稳定性模板(推荐)和高性能模板。
·支持创建模板,以默认参数模板为基础,稍加修改就能生成自定义的参数优化方案。
·支持将 MySQL 配置文件 my.cnf 导入生成模板。
·支持从参数设置页面另存为模板。
·单个或多个实例进行参数设置时,支持将已有模板应用于实例。
·支持两个参数模板之间进行对比。
注意:已使用参数模板的数据库实例并不会随着参数模板更新而同步更新,需要手动批量更新数据库实例。
一、系统默认模板说明
云数据库 MySQL 针对不同系统对于数据库性能、稳定性上要求不同,分别提供了注重性能或稳定性的默认模板。
二、高稳定性模板(推荐)
高稳定性模板注重数据安全以及运行稳定性,对比高性能参数模板,运行速度较慢。
三、高性能模板
高性能参数模板注重运行的性能,对比高稳定性参数模板,运行速度较快。
涉及参数如下:
注意:说明:
注意:参数模板中部分参数支持设置参数公式,关于参数公式的说明以及支持参数公式的参数,请参见 参数公式。
| 差异参数名 | 默认模板(已废弃) | 高性能参数模板 | 高稳定性模板 |
| innodb_read_io_threads | 12 | {MAX(DBInitCpu/2,4)} | {MAX(DBInitCpu/2,4)} |
| innodb_write_io_threads | 12 | {MAX(DBInitCpu/2,4)} | {MAX(DBInitCpu/2,4)} |
| max_connections | 10000 | {MIN(DBInitMemory/4+500,100000)} | {MIN(DBInitMemory/4+500,100000)} |
| table_definition_cache | 768 | {MAX(DBInitMemory*512/1000,2048)} | {MAX(DBInitMemory*512/1000,2048)} |
| table_open_cache | 2000 | {MAX(DBInitMemory*512/1000,2048)} | {MAX(DBInitMemory*512/1000,2048)} |
| table_open_cache_instances | 16 | {MIN(DBInitMemory/1000,16)} | {MIN(DBInitMemory/1000,16)} |
| innodb_disable_sort_file_cache | OFF | OFF | ON |
| innodb_log_compressed_pages | ON | OFF | ON |
| innodb_print_all_deadlocks | OFF | OFF | ON |
| sync_binlog | 0 | 1000 | 1 |
| thread_handling | one-thread-per-connection | pool-of-threads | one-thread-per-connection |
| innodb_flush_redo_using_fdatasync | TRUE | TRUE | TRUE |
| innodb_fast_ahi_cleanup_for_drop_table | ON | ON | ON |
| innodb_adaptive_hash_index | FALSE | TRUE | FALSE |
| innodb_table_drop_mode | ASYNC_DROP | ASYNC_DROP | ASYNC_DROP |
| innodb_flush_log_at_trx_commit | 2 | 2 | 1 |
核心参数说明:
| 参数 | 取值 | 说明 |
| innodb_flush_log_at_trx_commit | 1 | 事务提交时,把事务日志从缓存区写到日志文件中,并且立刻写入到磁盘上。 |
| | 2 | 事务提交时,把事务日志从缓存区写到日志文件中,但不一定立刻写入到磁盘上。日志文件会每秒写入到磁盘,如果写入前系统崩溃,就会导致最后1秒的日志丢失。 |
| innodb_flush_redo_using_fdatasync | true | 使用 fdatasync 刷 redo log file。 fdatasync 相比 fsync 不刷元数据部分,对性能略有提升。 |
| | false | 使用 fsync 刷 redo log file。相比 fdatasync,对性能略有下降。 |
| sync_binlog | 1 | 事务提交后,将二进制日志文件写入磁盘并立即刷新,相当于同步写入磁盘,不经过系统缓存。 |
| | 1000 | 每写入1000次系统缓存就执行一次写入磁盘并刷新的操作,会有数据丢失的风险。 |
| thread_handling | one-thread-per-connection | 每个连接由一条后台线程处理。当有大量的会话存在时,会导致大量的资源争用,大量的线程调度和缓存失效也会导致性能下降。 |
| | pool-of-threads | 不同于以前的每个连接由一条后台线程处理,所有连接由一个线程池共同处理,高并发场景下性能更好。 |
| innodb_table_drop_mode | SYNC_DROP | InnoDB 将在 DROP TABLE 结束之前完成删除表。 |
| | ASYNC_DROP | InnoDB 将重命名 ibd 文件到 innodb_async_drop_tmp_dir 并将其放入后台异步删除。 |
| table_definition_cache | 400 – 524288 | 可以存储在定义缓存中的表定义数。 如果使用大量表,可以创建大表定义缓存以加快表的打开速度。 与普通表缓存不同,表定义缓存占用更少的空间并且不使用文件描述符。 |
| table_open_cache | 1 – 524288 | 所有线程的打开表数。 增加这个值会增加 mysqld 需要的文件描述符的数量。 |
四、创建参数模板
当你想使用自己的数据库参数模板时,只需创建一个新的数据库参数模板,修改所需的参数并应用于你的数据库,就可以使用新的数据库参数模板。
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击创建模板。
2. 在弹出的对话框,配置如下参数,单击创建并设置参数。
| 参数 | 说明 |
| 模板名称 | 输入参数模板的名称,仅支持数字、英文大小写字母、中文以及特殊字符_-./()()[]+=::@,且长度不能超过60字符。参数模板名称需具有唯一性。 |
| 数据库版本 | 选择数据库版本,选择后,该参数模板将只能应用于相同数据库版本的实例。 |
| 引擎 | 选择引擎,选择后,该参数模板将只能应用于相同引擎的实例。 |
| 原始模板类型 | 选择一个默认模板作为新建参数模板的原始模板,创建后,你可以基于此原始模板进行参数调整。 |
| 模板描述 | 为新建的参数模板输入简要说明。此项为非必填项。 |
针对以上配置项而言,不同数据库版本对应可选的引擎以及原始模板类型如下。
| 数据库版本 | 引擎 | 原始模板类型 |
| MySQL 5.5 | InnoDB | 高稳定性模板 |
| | LibraDB | |
| MySQL 5.6 | InnoDB | 高稳定性模板高性能模板 |
| | LibraDB | |
| MySQL 5.7或者MySQL 8.0 | InnoDB | 高稳定性模板高性能模板 |
| | LibraDB | |
| | RocksDB | 默认参数模板说明:RocksDB 引擎的原始模板类型不支持选择高稳定性模板或高性能模板,仅能选择系统提供的默认参数模板。 |
3. 创建完成后会自动跳转到新建参数模板的详情页,你可以在参数模板详情页进行修改、导入、导出参数等操作。
五、应用参数模板于实例
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表中,找到需要应用的模板,单击应用到实例。
3. 在弹出页面,完成如下配置,单击提交。
| 参数 | 说明 |
| 执行方式 | 默认为立即执行,若选择维护时间内,则所选实例的参数变更任务会在实例的 维护时间 内执行并生效。 |
| 地域 | 选择实例所在地域。 |
| MySQL 实例 | 选择实例,支持根据实例 ID/名称快速过滤实例,支持单选、多选、全选实例。注意:应用参数模板到多个实例时,请确认模板中的参数是否适用这些实例,请你谨慎操作。 |
| 参数对比 | 在此项下面,可预览所选实例的参数模板应用前后的参数对比明细。仅当选择了实例后,此项才会显示。说明:你可以打开只预览变更的参数前面的按钮,打开后,可仅展示变更的参数。参数值如果为空,以(NULL)进行标识。实例若未开放对应参数模板的参数,参数值以(N/A)进行标识,且忽略变更。参数对比差异若以橙色标识,则表示应用模板参数时会重启数据库实例。 |
六、复制参数模板
当你已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。
七、方式一:通过已有参数模板复制参数模板
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID 或操作列的查看详情,进入模板详情页。
2. 在模板详情页,单击另存为模板。
3. 在弹出的对话框,配置如下参数:
·模板名称:输入参数模板的名称,在参数模板名称需具有唯一性。
·模板描述:输入参数模板的简要说明。
4. 确认无误后,单击保存即可将当前参数模板另存为新的参数模板,完成复制操作。
八、方式二:通过实例的参数设置功能复制参数模板
1. 登录 MySQL 控制台,在左侧导航选择实例列表页面,单击实例 ID 进入管理页。
2. 选择数据库管理 > 参数设置页。
3. 单击默认模板后面的,然后单击另存为模板。
4. 在弹出的对话框,配置如下参数:
·模板名称:输入参数模板的名称,在参数模板名称需具有唯一性。
·模板描述:输入参数模板的简要说明。
5. 确认无误后,单击新建并保存即可将当前参数模板另存为新的参数模板,完成复制操作。
九、修改参数模板的参数值
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,单击批量修改参数,或在参数当前值列单击编辑图标,可以修改参数值。
十、导入本地参数模板文件覆盖当前参数模板
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,单击导入参数。
3. 在弹出的对话框,选择文件,单击导入并覆盖原有参数。
注意:请选择 .cnf 格式的文件,大小不超过20KB。若格式不匹配,则会导入失败。
十一、方式一
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表,在所需模板的操作列,单击导出。
3. 所选参数模板会以 .cnf 格式的文件导出到本地。
十二、方式二
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,在上方单击导出参数。
3. 所选参数模板会以 .cnf 格式的文件导出到本地。
十三、删除参数模板
当你创建了多余的参数模板或者确定该参数模板已无使用价值,可通过删除参数模板功能删除不再使用的参数模板。
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表,在所需模板的操作列,单击删除。
3. 在弹出的对话框,单击确定。
十四、后续操作
相关重要参数的配置建议,请参见 参数配置建议。