云数据库 MySQL 除了提供多种系统参数模板供您选择外,您也可以创建自定义参数模板,根据自己的业务场景,实现自定义参数设置。
您可以使用数据库参数模板管理数据库引擎的参数配置。数据库参数组就像是引擎配置值的容器,这些值可应用于一个或多个数据库实例。
参数模板支持如下功能,用户可登录 云数据库 MySQL 控制台,在左侧边栏选择参数模板页查看参数:
支持系统默认参数模板,包含高性能参数模板以及高稳定性模板。
支持新建模板,以默认参数模板为基础,稍加修改就能生成自定义的参数优化方案。
支持从 MySQL 配置文件 my.conf 导入生成模板。
支持从参数设置保存为模板。
单个或多个实例进行参数设置时,支持从模板导入。
支持两个参数模板之间进行对比。
注意:
已使用参数模板的数据库实例并不会随着参数模板更新而同步更新,需要手动批量更新数据库实例。
如果您需要将新的参数应用到批量实例上,可通过批量参数设置时导入模板来重新应用。
系统默认模板说明
云数据库 MySQL 针对不同系统对于数据库性能、稳定性上要求不同,分别提供了注重性能或稳定性的默认模板。
高稳定性参数模板
高稳定性模板注重数据安全以及运行稳定性,对比高性能参数模板,运行速度较慢。
高性能参数模板
高性能参数模板注重运行的性能,对比高稳定性参数模板,运行速度较快。
注意:
目前高性能参数模板仅支持云数据库 MySQL 双节点和三节点的5.6、5.7、8.0版本。
涉及参数如下:
说明:
差异参数名 | 默认模板(已废弃) | 高性能参数模板 | 高稳定性模板 |
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 | FALSE | TRUE | FALSE |
innodb_fast_ahi_cleanup_for_drop_table | FALSE | TRUE | FALSE |
innodb_adaptive_hash_index | FALSE | TRUE | FALSE |
innodb_table_drop_mode | SYNC_DROP | ASYNC_DROP | SYNC_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_flush_redo_using_fdatasync | FALSE | redo 日志文件采用 fsync 系统调用来落盘。 |
| TRUE | redo 日志文件采用 fdatasync 系统调用来落盘。在一些 redo 落盘场景可以避免总是刷文件元数据到存储设备上,来减少开销。 |
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. 在弹出的对话框,配置如下参数,单击创建并设置参数。
模板名称:输入参数模板的名称,在参数模板名称需具有唯一性。
数据库版本:选择需要的数据库版本。
原始模板类型:选择需要从哪一类默认模板作为创建模板。
模板描述:输入参数模板的简要说明。
3. 创建完成后,您可以在模板详情页修改、导入、导出参数等。
应用参数模板于实例
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表中,找到需要应用的模板,单击应用到实例。
3. 在弹出页面,选择参数的执行方式和实例,检查参数修改无误后,单击提交。
执行方式:默认为立即执行;若选择维护时间内,所选实例的参数变更任务会在实例的 维护时间 内执行并生效。
MySQL 实例:选择对应地域下,需要应用参数模板的实例。
参数对比:可查看所选实例参数修改前、后的配置。
注意:
应用参数模板到多个实例上时,请确认参数是否适用这些实例,请您谨慎操作。
复制参数模板
当您已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。
方式一:通过已有参数模板复制参数模板
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID 或操作列的查看详情,进入模板详情页。
2. 在模板详情页,单击另存为模板。
3. 在弹出的对话框,配置如下参数:
模板名称:输入参数模板的名称,在参数模板名称需具有唯一性。
模板描述:输入参数模板的简要说明。
4. 确认无误后,单击保存即可将当前参数模板另存为新的参数模板,完成复制操作。
方式二:通过实例的参数设置功能复制参数模板
1. 登录 MySQL 控制台,在左侧导航选择实例列表页面,单击实例 ID 进入管理页。
2. 选择数据库管理 > 参数设置页,单击另存为模板。
3. 在弹出的对话框,配置如下参数:
模板名称:输入参数模板的名称,在参数模板名称需具有唯一性。
模板描述:输入参数模板的简要说明。
4. 确认无误后,单击新建并保存即可将当前参数模板另存为新的参数模板,完成复制操作。
修改参数模板的参数值
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,单击批量修改参数、或在参数当前值列,单击
可修改参数值。注意:
选择导入参数,在从本地文件导入页中,选择参数配置文件时,需要注意配置文件的格式要与 MySQL 数据库服务器的配置文件格式一致或者使用导出参数的文件模板,否则会提示导入不成功。
导入参数模板
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,单击导入参数。
注意:
选择导入参数,在从本地文件导入页中,选择参数配置文件时,需要注意配置文件的格式要与 MySQL 数据库服务器的配置文件格式一致或者使用导出参数的文件模板,否则会提示导入不成功。
3. 在弹出的对话框,选择文件,单击导入并覆盖原有参数。
导出参数模板
方式一
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表,在所需模板的操作列,单击导出。
方式二
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面,单击模板 ID,进入模板详情页。
2. 在模板详情页,在上方单击导出参数。
删除参数模板
当您创建了多余的参数模板或者确定该参数模板已无使用价值,可通过删除参数模板功能删除不再使用的参数模板。
1. 登录 MySQL 控制台,在左侧导航选择参数模板页面。
2. 在参数模板列表,在所需模板的操作列,单击删除。
3. 在弹出的对话框,单击确定。