更新时间:2024-07-30 GMT+08:00

实例参数说明

DDM实例默认支持修改以下参数,特殊场景(如数据迁移)中如需修改更多实例参数请联系技术支持人员协助处理。

表1 参数说明

参数名称

参数说明

取值范围

缺省值

bind_table

用于描述多个拆分表的内在数据关联性,用于告知优化器在处理join时,把join下推到MySQL层执行。参数举例请详见表下的说明。

  • 格式要求:

    [{<table1>.<column1>,<table2>.<column2>},{<table1>.<column2>,<table3>.<column1>},...]

    该参数要以“表名.列名”的形式出现且可以多对同时出现。

  • 版本要求:

    DDM 2.3.2.7版本及以上。

-

character_set_server

DDM服务端字符集,如果需要存储emoji表情符号,请选择utf8mb4,并设置RDS字符集也为utf8mb4。

3.0.9版本之后,连接DDM实例执行show variables like '%char%'查询命令,查询结果中character_set_client/character_set_results/character_set_connection固定显示为utf8mb4。

gbk、utf8、utf8mb4

utf8mb4

collation_server

DDM服务端字符序。

utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_general_ci

utf8mb4_unicode_ci

concurrent_execution_level

逻辑表扫描时的分片并发执行级别:

  • DATA_NODE:分库间并行扫描,同一分库内各分片串行扫描。
  • RDS_INSTANCE:RDS实例间并行扫描,同一RDS实例内各分片串行扫描。
  • PHY_TABLE:各物理分片全部并行扫描。

RDS_INSTANCE、DATA_NODE、PHY_TABLE

DATA_NODE

connection_idle_timeout

服务器关闭连接之前等待连接活动的秒数,以秒为单位,默认值28800,表示服务器关闭连接之前等待28800秒后,关闭连接。

60~86400

28800

contains_shard_key

是否强制SELECT,UPDATE,DELETE语句中过滤条件中包含拆分字段。

OFF、ON

OFF

ddl_precheck_mdl_threshold_time

DDL预检查中MDL锁持有时长阈值, 以秒为单位,默认值120。

1~3600

120

enable_table_recycle

  • ON:开启表回收站。
  • OFF:关闭表回收站。

开启表回收站之后,表删除会进入回收站,7天内可以通过RESTORE命令进行恢复。

OFF、ON

OFF

long_query_time

记录慢查询的最小秒数,以秒为单位,默认值为1,表示如果SQL执行大于等于1秒就定义为慢SQL。

0.01~10

1

max_allowed_packet

服务端和客户端在一次传送数据包的过程中最大允许的数据包大小。该值必须设置为1024的倍数。

1024~1073741824

1073741824

max_backend_connections

允许每个DDM节点同时连接RDS的最大客户端总数。0为默认值标识符,实际值等于(RDS的最大连接数-20)/DDM节点数。此参数生效需要RDS上对最大连接数也进行相应的设置。

0~10000000

0

max_connections

允许每个实例节点同时连接的客户端总数。

此参数需要结合数据节点的规格及处理能力配置合适的值。连接数过多,可能造成连接等待,影响性能。DDM的连接数消耗与分片数量和SQL设计等因素相关。

例如:SQL带拆分键时,1个DDM连接同时消耗后面1个数据节点连接;SQL不带拆分键时,假设分片个数为N,那么会消耗N个数据节点连接。

因此,SQL合理设计且DDM和数据节点的处理能力不成为瓶颈的前提,DDM最大连接数可以配置成略小于“后端数据节点的数量 * 单个数据节点支持的最大连接数”。

建议根据自己的业务进行实际压测,配置合理的值。

10~40000

20000

min_backend_connections

允许每个DDM节点同时连接RDS的最小客户端总数。默认值为10。

0~10000000

10

seconds_behind_master

主从RDS节点延迟时间阈值,以秒为单位,默认值为30,表示主RDS与从RDS之间的数据同步时间值不能超过30秒,如果超过30s,读数据指令就不走当前读节点。

0~7200

30

sql_execute_timeout

SQL执行超时秒数,以秒为单位,默认值28800,表示SQL执行大于等于28800秒超时。

建议将DN实例中的net_write_timeout参数值设置为大于sql_execute_timeout的数值。

100~28800

28800

temp_table_size_limit

临时表大小。

500000~2000000000

1000000

transfer_hash_to_mod_hash

创表时是否将hash算法转为mod_hash算法。

OFF、ON

OFF

ultimate_optimize

是否需要根据参数值来优化SQL执行计划。

OFF、ON

ON

force_read_master_in_transaction

事务中涉及的SQL语句是否强制从主节点读取。

注意:

3.0.9版本开始支持此参数。如果此开关被打开后,版本降级为3.0.9以下,之后再升级为3.0.9或以上时,此开关配置保持打开状态。

OFF、ON

OFF

ddl_flowcontrol_threshold

允许单位时间(1小时)DDL执行次数(包括执行正常和失败)。

1000~100000

10000