基于客户不同的业务场景,在购买实例后,建议根据您的业务场景对如下参数进行合理的配置。
参数配置总览
参数名称 | 默认值 | 是否需要重启 | 主要作用 | 推荐配置 |
UTF8 | 是 | 服务器默认字符集 | 根据业务需求选择 | |
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | 否 | SQL 语法和数据校验规则 | 根据业务场景及开发习惯配置 | |
1 | 否 | 慢查询界定时间 | 根据客户业务场景及性能敏感度调整 | |
ON | 否 | DDL 在线复制模式开关 | 保持默认开启 | |
64MB | 否 | 单行记录大小限制 | 保持默认配置 | |
99% | 否 | 存储空间只读模式触发阈值 | 保持默认配置 | |
95% | 否 | 只读模式退出阈值 | 保持默认配置 | |
ON | 否 | 闪回查询功能开关 | 建议开启 |
详细参数说明
character_set_server
默认值:UTF8
是否需要重启:是
作用:用于配置 TDSQL Boundless 服务器的默认字符集。TDSQL Boundless 提供常用多种字符集,包括 LATIN1、UTF8、UTF8MB4、GBK、GB18030 等。
字符集 | 特点 | 适用场景 |
LATIN1 | 英文字符,一个字符占用一个字节。 | 纯英文应用。 |
UTF8 | 国际编码,包含全世界所有国家需要用到的字符。 一个字符占用三个字节。 | 多语言支持,通用性强。 |
UTF8MB4 | UTF8超集,完全向下兼容,一个字符占用四个字节。 | 支持 emoji 等特殊字符。 |
GBK | 双字节字符集,即不论中、英文字符均使用双字节来表示。 | 简体中文环境。 |
GB18030 | 最新的国家标准中文字符集,是 GBK 超集,除了 GBK 的所有字符外,还包含了更多的汉字和中国少数民族文字。 | 全面中文字符支持。 |
建议:购买实例后,根据业务所需要支持的数据格式选择适合的字符集,确保客户端与服务器端设置相同的字符集,避免因字符集设置不正确而引发乱码的问题和不必要的重启操作。
sql_mode
默认值:
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION是否需要重启:否
说明:
TDSQL Boundless 的 sql_mode 默认值与 MySQL 8.0 不同,采用更宽松的配置。MySQL 8.0 的默认参数值为
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION。TDSQL Boundless 未启用日期校验(NO_ZERO_DATE 等)和 GROUP BY 严格检查,兼容性更好,但数据校验较宽松。如需更严格的数据校验,请手动调整 sql_mode。作用:TDSQL Boundless 可以运行在不同 SQL 模式,SQL 模式定义了应该支持的 SQL 语法、数据校验等。TDSQL Boundless 的默认参数值为
STRICT_TRANS_TABLES、NO_ENGINE_SUBSTITUTION。其中:STRICT_TRANS_TABLES 为启用事务表严格模式,用于控制如何处理无效或缺失的数据值;如果插入无效值,或插入超范围值、字符串超长、NOT NULL 列缺失等场景,事务表严格模式下报错,拒绝执行。NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO模式定义了无效数据的含义,STRICT_TRANS_TABLES定义了遇到无效数据如何处理。NO_ZERO_IN_DATE 是否允许日期中的月份和日包含0,且受是否开启严格模式的影响。NO_ZERO_DATE 数据库不允许插入零日期,且受是否开启严格模式的影响。ERROR_FOR_DIVISION_BY_ZERO 在严格模式下,INSERT 或 UPDATE 过程中,如果数据被零除,则产生错误而非警告,而非严格模式下,数据被零除时返回 NULL。ONLY_FULL_GROUP_BY 表示在 GROUP BY 聚合操作时,如果在 SELECT 中的列、HAVING 或者 ORDER BY 子句的列,必须是 GROUP BY 中出现或者依赖于 GROUP BY 列的函数列。说明:
sql_mode 参数的调整为全局生效。但需注意,其参数值中
ONLY_FULL_GROUP_BY 配置修改后,如果旧连接是长连接,则还是 session 级别的,因此,ONLY_FULL_GROUP_BY 配置修改后针对新建连接生效,旧连接不一定生效,需断开重连。NO_AUTO_CREATE_USER 禁止 GRANT 创建密码为空的用户。NO_ENGINE_SUBSTITUTION 使用的存储引擎被禁用或者未编译则抛出错误。建议:由于不同的 SQL 模式支持不同的 SQL 语法,建议根据您的业务场景及开发习惯进行合理的配置。
long_query_time
默认值:1
是否需要重启:否
作用:用于指定慢查询的界定时间,默认值为1s。当某个查询执行时间为1s及以上,该查询的执行情况会记录于慢日志中,便于过后对慢查询进行分析。
建议:基于客户业务场景及性能敏感度不同,建议根据各自业务场景设置合理的值,以便事后进行性能分析。
tdsql_use_online_copy_ddl
默认值:ON
是否需要重启:否
作用:用于控制是否启用 TDSQL Boundless 的 DDL 在线复制模式。
ON(默认值):开启 DDL 在线复制模式后,DDL 操作不锁表,不阻塞业务读写。
OFF:关闭 DDL 在线复制模式,将回退为 MySQL 原生的 Copy DDL,即非 Inplace 或非 Instant 的 DDL 运行期间将阻塞该表的写入请求。
建议:保持默认配置,默认开启。如果执行增/删主键、添加带表达式默认值的列(
ADD COLUMN DEFAULT (a+a))、涉及触发器的表等操作报错,可临时通过 set tdsql_use_online_copy_ddl = 0 关闭 Online DDL 模式,再重新执行。注意:
临时关闭后务必立即恢复为 ON 状态,避免后续 DDL 操作意外阻塞业务。
临时关闭操作应在同一事务或连接会话中完成,确保设置的一致性。
tdstore_txn_max_entry_size
默认值:67108864
是否需要重启:否
作用:用于控制单行记录的大小,默认为64MB。当写入的单行记录大小超过64MB时,语句会执行失败。
建议:保持默认配置。如果单行记录大小超过64MB,可联系腾讯云技术支持评估调整。
tdstore_enter_readonly_threshold
默认值:99%
是否需要重启:否
作用:提供存储空间保护机制,当节点的存储空间使用率超过该阈值(默认值为99%)时,节点将自动进入只读模式,节点此时可正常查询数据,但仅允许执行数据清理操作(如 DROP/TRUNCATE),其他写入操作(如 INSERT/UPDATE/DELETE)将被拒绝。如果需要恢复到可写模式,可以手动操作或等待空间使用率低于
tdstore_leave_readonly_threshold后,节点将自动退出只读模式。建议:保持默认配置。
tdstore_leave_readonly_threshold
默认值:95%
是否需要重启:否
作用:用于设置节点自动退出只读模式的阈值,当存储空间使用率低于该阈值(默认值为95%)时,节点将自动退出只读模式。
建议:保持默认配置。
tdsql_enable_stale_read
默认值:ON
是否需要重启:否
作用:用于控制允许闪回查询功能的开关。
建议:建议默认开启闪回查询功能,便于在误更新场景下通过闪回查询快速查询数据的历史版本并进行恢复。