为保障集群稳定及安全的运行,TDSQL-C MySQL 版有部分使用上的约束。本文为您介绍 TDSQL-C MySQL 版的相关使用限制。
引擎限制
TDSQL-C MySQL 版支持 Innodb 引擎与 LibraDB 引擎。
命名限制
限制项 | 限制说明 |
集群名 | 长度小于60字符。 支持输入 中文/英文/数字/"-"/"_"/"." 。 |
读写/只读实例名 | 长度小于60字符。 支持输入 中文/英文/数字/"-"/"_"/"." 。 |
账号名 | 长度为1 - 16个字符。 由字母、数字和特殊字符组成,以字母开头,字母或数字结尾。 特殊字符为 "_" 。不能和已有的账号名重复。 |
数据库名 | 长度最长为64字符。 由小写字母,数字,中划线 (-) ,下划线(_) 组成。字母开头,字母或是数字结尾 。 不能和已有的数据库名重复且创建后数据库名不支持修改。 |
配额限制
配额 | 限制 |
只读实例 | 一个实例形态为预置资源的集群里,只读实例总的创建个数为0 - 15个,包括了 TXSQL 引擎和 LibraDB 引擎。但最多 6 个只读实例可以是 LibraDB 引擎。 一个实例形态为预置资源的集群里,只读实例的总个数 = 预置资源只读实例数 + Serverless 只读实例数。 一个实例形态为 Serverless 的集群里,只读实例的个数范围为0 - 15个,0个只读实例,此 Serverless 集群架构为单节点版,非0个只读实例,此 Serverless 集群架构为集群版。 |
标签 | 标签键必须唯一,最大设置20个。每次最多设置50个实例进行批量标签绑定。 |
备份空间免费额度 | TDSQL-C MySQL 版备份空间暂时不会产生额外费用,后续会根据购买集群时的存储空间设置备份空间的免费额度,超出免费额度将产生额外费用。 |
备份保留天数 | 默认为7天,最大支持1830天。 |
日志保留天数 | 默认为7天,最大支持1830天。 |
项目 | 项目是以集群为维度归属的,同一集群下的多个实例归属于同一个项目下。 |
操作限制
限制项 | 限制说明 |
内核版本升级 | 版本升级完成时会涉及集群切换(即秒级数据库连接断开),建议程序有自动重连功能,并且建议选择实例可维护时间内做切换。 单个实例的表数量超过100万后,可能会造成升级失败,同时也会影响数据库监控,请合理规范表的数量,控制单个实例表数量不超过100万。 内核小版本升级后无法降级。 |
故障切换 | 当主节点出现故障时,TDSQL-C MySQL 版会切换到备节点。切换过程中有30秒以内的连接闪断,需保证您的业务具有自动重连机制,避免因为切换导致服务不可用。 |
切换网络 | 更换网络会导致集群下所有内网 IP 发生变化,系统将自动分配新的 IP 地址,需及时修改客户端程序。 旧的 IP 地址默认24小时后会失效,失效时间可在切换网络操作时设置。当设置为0更换网络后旧 IP 地址会被立即回收。 切换网络时只能选择集群所在地域和可用区内的 VPC 网络与子网。 |
存储空间 | 按量计费和 Serverless 集群下的每个计算实例规格存储空间都有上限,具体可分别参考 产品规格 和 Serverless 算力配置。 包年包月计费模式下,以购买的存储空间为准。 不同计算实例规格有对应最大存储上限,如需更大的存储,可升级计算实例规格。 |
数据恢复 | 建议您在数据恢复前备份好重要数据,以免导致数据丢失。建议您通过回档或克隆集群来恢复数据。 |
变配 | TDSQL-C MySQL 版支持原地快速升降配,特殊情况下连接有可能发生秒级闪断,请确保业务具备重连机制,建议在业务低峰执行此操作。 |
关键字和保留字限制
关键字指在 SQL 语句中有意义的词。保留字指关键字中某些特定的词(如 SELECT、DELETE 或 BIGINT)被保留到数据库对应版本里。这些保留关键字需要特殊处理才能作为表名和列名等标识符,如加引号,否则会出现报错,非保留关键字不做特殊处理就可以作为标识符使用。
除了官网列举的关键字和保留字以外,TDSQL-C MySQL 版新增了以下保留关键字:
CLUSTER
THREADPOOL_SYM
连接数限制
TDSQL-C MySQL 版的连接数上限为系统变量 max_connections,当实例连接数量超过 max_connections 时,新的连接将无法建立。
云数据库默认连接数可在 TDSQL-C MySQL 版控制台 单击集群 ID,进入集群管理页 > 参数设置页查看。用户可以根据需要自行调整 max_connections 的值。但连接数越多,消耗系统资源也越多。如果连接数超过实际系统的负载承受能力范围,必然影响系统服务质量。
关于 max_connections 请参见 MySQL 官方文档。
连接云数据库的客户端的限制
建议使用 CVM 系统自带的 MySQL 客户端和 lib 库,连接云数据库实例。
关于慢查询的说明
对于使用 Windows 云服务器的开发者,暂时不能直接获取慢查询日志。如果有需要,请 提交工单 联系我们获取慢查询日志文件。
云数据库的 binlog 保存时间说明
TDSQL-C MySQL 版 binlog 日志文件可以保留7天 - 1830天,默认为7天(单击集群 ID 进入备份管理 > 日志备份设置里可配置保留时间)。
binlog 保留时间过长或增长太快,都会导致备份空间变大,一旦备份空间超出系统的赠送空间,将会产生额外的备份空间费用。
字符集说明
说明:
从官方 MySQL 8.0.29版本开始,原有 UTF8 编码格式变为 UTF8MB4。
数据库版本 MySQL 5.7默认字符集编码格式是 UTF8。
数据库版本 MySQL 8.0默认字符集编码格式分如下两种情形:
情形一:官方 MySQL 8.0.29以下版本实例的默认字符集编码格式为 UTF8。
情形二:官方 MySQL 8.0.29及以上版本实例的默认字符集编码格式为 UTF8MB4。详细变更说明请参见 MySQL 官网文档。
您可以通过 SQL 语言或 TDSQL-C MySQL 版控制台修改字符集。
通过 SQL 语言修改字符集
1. 通过 SQL 语言执行如下语句可修改云数据库实例的默认字符集编码:
SET @@global.character_set_client = utf8;SET @@global.character_set_results = utf8;SET @@global.character_set_connection = utf8;SET @@global.character_set_server = utf8;
执行语句后,其中 @@global.character_set_server 等10分钟左右将自动同步到本机文件进行持久化(另外3个变量不会同步到本机文件),迁移或重启将保持设置后的值。
2. 执行如下语句可修改当前连接的字符集编码:
SET @@session.character_set_client = utf8;SET @@session.character_set_results = utf8;SET @@session.character_set_connection = utf8;
或者
SET names utf8;
3. 对于 PHP 程序,可通过如下函数设置当前连接的字符集编码:
bool mysqli::set_charset(string charset);
或者
bool mysqli_set_charset(mysqli link, string charset);
4. 对于 Java 程序,可通过如下方式设置当前连接的字符集编码:
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8
通过 TDSQL-C MySQL 版控制台修改字符集
1. 登录 TDSQL-C MySQL 版控制台,在左侧集群列表,单击目标集群,进入集群管理页。
2. 在集群详情下,找到目标实例,单击实例 ID 后的详情,进入实例详情页,在字符集后单击修改图标进行修改。
操作限制
1. 请不要修改 TDSQL-C MySQL 版集群默认已有的账号的信息和权限,这个操作可能会令部分集群服务失效。
2. 创建库和表时建议统一使用 InnoDB 引擎,这个选择能使实例在支持高访问的能力上有更好的表现。
数据库账户权限
TDSQL-C MySQL 版不对用户提供实例 super user 权限,用户可以修改的参数以实际控制台为准,可以通过 TDSQL-C MySQL 版控制台 找到目标集群,单击集群 ID,进入集群管理页 > 参数设置页,查看可修改的参数范围。