使用限制

最近更新时间:2024-10-21 09:31:41

我的收藏
为保障集群稳定及安全的运行,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 版的关键字和保留字与 MySQL 官网基本一致,详见 官网文档 ,便于您更好地执行 SQL。
除了官网列举的关键字和保留字以外,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 库,连接云数据库实例。

关于慢查询的说明

对于使用 Linux 云服务器的开发者,可以通过云数据库导出工具获取慢查询日志,请参见 下载备份文件下载慢日志明细
对于使用 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 官网文档
虽然云数据库支持默认字符集编码的设置,但建议您在创建表时,显式的指定表的编码,并在连接建立时指定连接的编码。这样您的应用将会有更好的移植性。 关于字符集的相关资源请参见 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,进入集群管理页 > 参数设置页,查看可修改的参数范围。

网络选择

推荐您使用私有网络,在私有网络内,用户可以自由定义网段划分、IP 地址和路由策略。与基础网络相比,私有网络更适合有网络自定义配置需求的场景。私有网络和基础网络的对比请参见 管理网络