数据加载限制

最近更新时间:2026-06-30 16:45:32

我的收藏
由于只读分析实例采用列式存储构建数据,因此在部分 MySQL 使用场景下存在不支持的情况。本文列出 TDSQL Boundless 只读分析实例当前的数据加载限制。

主键与唯一键

TDSQL Boundless 只读分析实例支持将无主键、无唯一键的表加载到列存中,并允许对表的主键执行 DDL 变更。但以下场景仍不支持加载:
表中所有字段均为以下类型,且无其他类型字段:TIMEDATETIMESTAMPDATETIMEFLOATDOUBLE
通过 DDL 变更后,表中仅剩上述类型字段。
注意:
出于查询性能考虑,建议为加载到只读分析实例的表设置主键或唯一键。无主键表在只读分析实例中的查询性能可能低于有主键表。

浮点类型主键

不支持以 FLOATDOUBLE 字段作为主键的表加载到只读分析实例。浮点类型作为主键时,无法保证数据精确去重和排序的正确性。

不加载的对象类型

只读分析实例不会加载或同步以下对象:
存储过程(Stored Procedure)
自定义函数(User Defined Function)
触发器(Trigger)
外键约束(Foreign Key)
事件(Event)
索引(Index)
列式存储不支持上述特殊对象的构建。

空间数据类型

包含空间数据类型字段(如 GEOMETRYPOINTLINESTRINGPOLYGON 等)的表无法加载到只读分析实例。

临时表

由于临时表的数据变更不记录到 Binlog 中,因此只读分析实例无法加载临时表的数据。

表 Rename 后的行为

当表被加载到只读分析实例后,对该表执行 RENAME TABLE 操作时,重命名后的表会在只读分析实例中自动加载。如果在读写实例中再创建一张与原表同名的新表,该新表也会自动加载到只读分析实例。
示例:
1. 表 A 已加载到只读分析实例并构建为列存。
2. 在读写实例中执行 RENAME TABLE A TO B,则只读分析实例中表 A 同步重命名为表 B。
3. 在读写实例中再次创建表 A,该表会自动加载到只读分析实例。

高精度 Decimal 主键

不支持以超长 DECIMAL 字段作为主键的表加载为列存。只读分析实例列存的 Decimal 精度上限为 76 位(对应内部 Decimal256 类型),超出该精度的 Decimal 主键不被支持。

列级权限

只读分析实例默认会同步读写实例中所有用户对对象的查询权限,但不同步列级权限。在只读分析实例中无法实现列级权限管控。

不支持的数据类型

部分数据类型不支持加载到只读分析实例,详细列表请参见 数据类型。如果表中存在不支持的数据类型,则该表无法加载。

不支持的表结构

只读分析实例不支持生成列(Generated Column)语法,包括虚拟列(VIRTUAL)和物理列(STORED)。包含生成列的表无法加载到只读分析实例。

不支持的字段类型转换

部分字段类型转换不被只读分析实例支持。如果在 TDSQL Boundless 的读写实例中对字段类型进行不被支持的修改,会导致只读分析实例的数据加载任务中止,所有表的加载状态将变为暂停。详细的类型转换支持情况请参见 类型转换函数支持说明
注意:
在 TDSQL Boundless 中对表字段类型进行修改后,若该类型变更不被只读分析实例支持,所有表的加载状态均会暂停。需要恢复使用时,将该表移除加载后再重新加载。

分区表 DDL 同步

只读分析实例支持加载分区表,并支持在源端对分区表执行下列 DDL 变更。
支持的分区操作:
RANGELIST 分区表的 DROP PARTITION/SUBPARTITION TEMPLATE
RANGELIST 分区表的 ADD PARTITION/SUBPARTITION TEMPLATE
支持的分区数据类型(无函数场景):
整数类型:UINT8UINT16UINT32UINT64INT8INT16INT32INT64YEARBIT
时间类型:DATEDATETIMETIMESTAMP
支持的分区函数:
分区函数
支持的输入数据类型
YEAR
DATEDATETIMETIMESTAMP
MONTH
DATEDATETIMETIMESTAMP
QUARTER
DATEDATETIMETIMESTAMP
DAY / DAYOFMONTH
DATEDATETIMETIMESTAMP
DAYOFWEEK / WEEKDAY
DATEDATETIMETIMESTAMP
DAYOFYEAR
DATEDATETIMETIMESTAMP
TO_DAYS
DATEDATETIMETIMESTAMP,以及表示日期的字符串
TO_SECONDS
DATEDATETIMETIMESTAMP
UNIX_TIMESTAMP
TIMESTAMP

普通表的 DDL 同步

在 TDSQL Boundless 的读写实例中,对表执行的 DDL 操作通常会正常同步至只读分析实例。但下列场景会导致表在只读分析实例中出现使用异常:
对表执行 DDL 后,表的结构落入本文上述任一不支持场景,导致对象无法在只读分析实例中正常使用。
对超过100万行的表执行主键变更操作(添加、删除、修改主键),会导致该表暂停同步到只读分析实例。
说明:
对表执行 PT 工具变更(pt-online-schema-change)、Gh-ost 变更、阿里云 DMS 无锁变更场景均能够正常同步到只读分析实例。
建议对超过100万行的表使用 PT 工具等在线 DDL 工具执行主键变更操作,避免触发同步暂停。同步暂停后,需要将该表移除加载,再重新加载该表。