有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
TDSQL MySQL 版(TDStore 引擎)在使用上与 MySQL 8.0 高度一致,用户可以将其视为一个 MySQL 8.0 实例来使用,但请注意以下几点:

TDStore 引擎暂不支持的语法特性

不支持下列对象的 CREATE/ALTER/DROP 语法。
event
resource group
instance
server
tablespace
spatial
SET GLOBAL log_output = TABLE:不支持 general_log 和 slow_log 输出到表,只能输出到 file(即慢查询日志文件)。
暂不支持 LOCK TABLE 语法(默认依赖 LOCK TABLE 语法的数据导入导出工具,建议通过参数设置跳过 LOCK TABLE 的执行避免报错,例如 mysqldump --lock-tables = false)。
禁止对 MySQL 库下的任何系统表进行 DDL 操作。
暂不支持外键。
不允许修改表的存储引擎。
暂不支持虚拟列、GEOMETRY 类型、降序索引、全文索引。
不支持 ALTER TABLE .. EXCHANGE PARTITION
不支持 SAVEPOINT
不支持 Spatial indexes
不支持 Transportable tablespace
不支持 multi-valued indexes
不支持 Fulltext indexes
不支持 Group Replication
不支持 Partial Update of LOB in InnoDB
不支持使用 INPLACE 或者 ONLINE 的方式添加含有 DEFAULT EXPRESS 列;
例如:支持 ALTER TABLE t ADD COLUMN col INT DEFAULT 10; 但不支持 ALTER TABLE t ADD COLUMN col INT DEFAULT (10);
实验特性:触发器(trigger)功能在当前版本为实验特性,不建议用户在正式生产环境中使用。
说明:
每个实验特性各自拥有独立开关和默认值。用户如需开启/关闭,请在连接到 TDStore 实例后通过如下 SQL 语句开启(以 tdsql_enable_trigger 为例):SET PERSIST tdsql_enable_trigger=ON;
特性名
开关
默认值
触发器
tdsql_enable_trigger
OFF

TDStore 引擎与 MySQL 8.0 的使用差异

TDStore 自增字段暂时只保证全局唯一,不保证全局自增。
add column,add/drop index 支持 online 不阻塞读写;变更 column 类型,变更字符集也支持 online 不锁表。目前会锁表的 DDL 操作主要有:
add/drop 主键
rename column
add/drop/change 自增字段
add column 的时候默认值采用了表达式的形式,例如 add column default (a+a)
表是无主键表
表上有关联的触发器
遇到上述不支持 online 的 DDL 系统会有报错提示,用户此时可以设置 set tdsql_use_online_copy_ddl = 0来通过锁表的方式执行这类 DDL。
set global xxx 只会设置某个节点上的变量,需要用/*# broadcast */ set global xxx 广播到所有节点才能使其在全局生效。
show variables,show global status 展示的是当前连接的计算节点中的状态信息,连到不同的计算节点展示的信息可能不同。
show processlist 展示当前连接节点的 processlist,如果需要展示所有节点的,需要用/*# broadcast */show processlist。

TDStore实例建表数量的限制

每个 TDStore 实例能创建表的数量有如下限制,此数量限制与构成实例的节点规格及节点数相关,若超出此限制将返回对应错误码(EC_MC_DATA_OBJ_LIMIT_EXCEEDED )。
节点规格(CPU 内存)
基础版实例最大建表数量(单节点)
集群版实例最大建表数量(3节点为例)
1核2GB
160
480
2核4GB
320
960
4核8GB
640
1920
8核16GB
1280
3840
16核32GB
2560
7680
32核64GB
5120
15360