参数管理
操作场景
为了确保DDM服务发挥出最优性能,您可以根据自己的业务情况对DDM实例的运行参数进行配置。
前提条件
已有DDM实例,且实例状态处于“运行中”。
操作步骤
- 输入账户名和密码登录分布式数据库中间件服务控制台。
- 单击左侧菜单栏的“实例管理”,进入实例管理页面。图1 实例管理页面
- 在实例管理页面单击实例名称,进入实例信息详情页。
- 在该页面单击“参数管理”。您可以根据需要修改对应参数。图2 参数管理页面
表1 DDM实例配置参数说明 参数名称
缺省值
取值范围
参数说明
bind_table
-
格式要求:[{tb.col1,tb2.col2},{tb.col2,tb3.col1},...]该参数要以“表名.列名”的形式出现且可以多对同时出现。
版本要求:
DDM 2.3.2.7版本及以上。
用于描述多个拆分表的内在数据关联性,用于告知优化器在处理join时,把join下推到MySQL层执行。参数举例请详见表下的说明。
character_set_server
utf8mb4
gbk、utf8、utf8mb4
DDM服务端字符集,如果需要存储emoji表情符号,请选择utf8mb4,并设置RDS字符集也为utf8mb4。
collation_server
utf8mb4_unicode_ci
utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_general_ci
DDM服务端字符序。
concurrent_execution_level
DATA_NODE
RDS_INSTANCE、DATA_NODE、PHY_TABLE
逻辑表扫描时的分片并发执行级别: DATA_NODE: 分库间并行扫描,同一分库内各分片串行扫描;RDS_INSTANCE: RDS实例间并行扫描,同一RDS实例内各分片串行扫描;PHY_TABLE: 各物理分片全部并行扫描。
connection_idle_timeout
28800
60~86400 (s)
服务器关闭连接之前等待连接活动的秒数,以秒为单位,默认值28800,表示服务器关闭连接之前等待28800秒后,关闭连接。
contains_shard_key
OFF
OFF、ON
是否强制select,update,delete语句中过滤条件中包含拆分字段。
ddl_precheck_mdl_threshold_time
120
1~3600
DDL预检查中MDL锁持有时长阈值, 以秒为单位,默认值120。
enable_table_recycle
OFF
OFF、ON
ON: 开启表回收站。
OFF: 关闭表回收站。
long_query_time
1
0.01~10 (s)
记录慢查询的最小秒数,以秒为单位,默认值为1,表示如果sql执行大于等于1秒就定义为慢sql。
max_allowed_packet
1073741824
1024~1073741824
包或任何生成的中间字符串的最大值。包缓冲区初始化为net_buffer_length字节,但需要时可以增长到max_allowed_packet字节。该值默认很小,以捕获大的(可能是错误的)数据包。该值必须设置为1024的倍数。
max_backend_connections
0
0~10000000
允许每个DDM节点同时连接RDS的最大客户端总数。0为默认值标识符,实际值等于(RDS的最大连接数-20)/DDM节点数。
max_connections
20000
10~40000
允许同时连接的客户端总数。
此参数需要结合数据节点的规格及处理能力配置合适的值。连接数过多,可能造成连接等待,影响性能。DDM的连接数消耗与分片数量和SQL设计等因素相关。
例如:SQL带拆分键时,1个DDM连接同时消耗后面1个数据节点连接;SQL不带拆分键时,假设分片个数为N,那么会消耗N个数据节点连接。
因此,SQL合理设计且DDM和数据节点的处理能力不成为瓶颈的前提,DDM最大连接数可以配置成略小于“后端数据节点的数量 * 单个数据节点支持的最大连接数”。
建议根据自己的业务进行实际压测,配置合理的值。
min_backend_connections
10
0~10000000
允许每个DDM节点同时连接RDS的最小客户端总数。默认值为10。
seconds_behind_master
30
0~7200
主从rds节点延迟时间阈值,以秒为单位,默认值为30,表示主rds与从rds之间的数据同步时间值不能超过30秒,如果超过30s,读数据指令就不走当前读节点。
sql_execute_timeout
28800
100~28800 (s)
SQL执行超时秒数,以秒为单位,默认值28800,表示sql执行大于等于28800秒超时。
temp_table_size_limit
1000000
500000~2000000000
临时表大小。
transaction_policy
XA
XA、FREE、NO_DTX
XA:XA 事务,保证原子性,保证可见性;FREE:允许多写,不保证原子性,无性能损耗;NO_DTX:单分片事务。
transfer_hash_to_mod_hash
OFF
OFF、ON
创表时是否将hash算法转为mod_hash算法。
ultimate_optimize
ON
OFF、ON
是否需要根据参数值来优化SQL执行计划。
force_read_master_in_transaction
OFF
OFF、ON
事务中涉及的SQL语句是否强制从主节点读取。
注意:3.0.9版本开始支持此参数。如果此开关被打开后,版本降级为3.0.9以下,之后再升级为3.0.9或以上时,此开关配置保持打开状态。
DDM默认支持修改以上实例参数,特殊场景(如数据迁移)下如需修改更多实例参数请联系技术支持人员协助处理。
参数举例:图3 未使用bind_table结果展示图4 使用bind_table结果展示 - 确认无误后,单击“保存”,并在弹框中单击“是”完成参数修改。图5 参数确认页面
- 修改配置参数可能影响应用访问DDM实例,请谨慎操作。
- 修改参数命令下发成功后,预计需要20~60秒生效,请耐心等待。
