产品概述
应用场景
产品架构
实例类型
兼容性说明
使用规范建议
表类型 | 适用场景 | 特点 |
普通表(单表) | 数据量小、无分布需求 | 所有数据在一个 RG |
分区表 | 大数据量、需水平扩展 | 数据按规则分布到多 RG |
同步表 | 系统配置、维度表、读多写少 | 全节点强同步副本 |
tdsql_auto_increment_batch_size=1(性能会下降)项目 | 限制 |
单表最大列数 | 4096 |
单表最大索引数 | 64 |
单表最大分区数 | 8192 |
索引最大字节数 | 3072字节 |
索引最大列数 | 16列/索引 |
单行最大长度 | 默认64MB,最大512MB(参数 tdstore_txn_max_entry_size) |
最大建表数 | 与节点规格相关(1万~8万) |
策略 | 适用场景 | 键类型 |
HASH | 均匀散列,整数键 | 整数类型 |
KEY | 均匀散列,字符串键 | 任意类型 |
RANGE | 时间范围、ID 区间查询 | 整数/日期 |
LIST | 枚举值分类(如地区) | 整数 |
-- 创建分布策略CREATE PARTITION POLICY policy_namePARTITION BY HASH(INT) PARTITIONS n;-- 建表时绑定CREATE TABLE t (...) PARTITION BY HASH(a) PARTITIONS n USING PARTITION POLICY policy_name;
RANGE/RANGE COLUMNS 分区表可绑定时间调度 DP,实现冷数据自动归档(EXPIRE、START_TIME、END_TIME)-- 支持在线转换,不阻塞读写ALTER TABLE t PARTITION BY HASH(id) PARTITIONS 16;
CREATE TABLE t (id BIGINT PRIMARY KEY,name VARCHAR(100)) SYNC_LEVEL = NODE(ALL) DISTRIBUTION = NODE(ALL);
SYNC_LEVEL = NODE(ALL) 和 DISTRIBUTION = NODE(ALL) 目前只支持 ALL,不能指定部分节点限制项 | 默认值 | 参数 |
单行最大 | 64MB | tdstore_txn_max_entry_size |
单事务最大 | 1GB | tdstore_max_txn_size |
-- 推荐开启方式(三种均支持)BEGIN;START TRANSACTION;SET autocommit = 0;
SAVEPOINT 部分回滚SELECT ... FOR UPDATE(排他锁)/ SELECT ... LOCK IN SHARE MODE(共享锁)BATCH LIMIT 拆分-- 使用 BATCH LIMIT 拆分大事务,每批原子,整体非原子BATCH LIMIT 2000 DELETE FROM t WHERE create_time < '2024-01-01';
ALGORITHM=INPLACE(默认)FULLTEXT 全文索引(不支持)SPATIAL 空间索引(不支持)JSON 多值索引(不支持)降序索引(不支持)-- 数据倾斜时降低并行度(默认 8)SET max_parallel_ddl_degree = 4; -- 或 2-- 监控 DDL 进度SELECT * FROM information_schema.ddl_jobs WHERE state != 'done';
EXCHANGE PARTITIONANALYZE/CHECK PARTITIONPARTITION BY、Converting charset、Changing column type 上支持 DML 并发,MySQL 不支持。功能 | 是否支持 | 说明 |
外键 | ❌ | TDStore 限制,报错 |
FULLTEXT 索引 | ❌ | 报错1214 |
GIS/空间类型 | ❌ | 不支持 |
生成列 | ❌ | 不支持 |
XA 事务 | ⚠️ | 语法不报错但不生效 |
Event(事件调度器) | ❌ | 不支持 |
X 协议 | ❌ | 不支持 |
LOB 部分更新 | ❌ | 不支持 |
JSON 排序混合类型 | ❌ | 不支持 |
只读账号/只读节点 | ⚠️ | 计划后续支持 |
全局索引 | ❌ | 不支持 |
SELECT *,明确列出所需字段。LIMIT 保护。EXPLAIN 查看执行计划,确认分区裁剪(partition pruning)是否生效。INSERT INTO ... VALUES (...),(...),...,减少网络往返。tdstore_bulk_load 参数),性能可提升数倍,详细请参见 关于数据导入(Bulk Load 模式)。陷阱 | 说明 | 规避方法 |
写入热点 | 无主键或单调递增主键 | 使用复合主键或带散列前缀 |
唯一索引缺分区键 | 建表失败 | 所有唯一索引必须包含分区键 |
自增值不连续 | 缓存机制导致 | 业务不依赖自增连续性 |
XA 不生效 | 语法合法但无 XA 语义 | 改用 TDSQL Boundless 原生分布式事务 |
无索引 FOR UPDATE | 锁整表 | 确保查询条件有索引 |
大事务 OOM | 1GB内存限制 | 拆分事务,使用 BATCH LIMIT |
同步表写卡顿 | Follower 故障时卡一个 lease | 同步表只用于读多写少场景 |
Online DDL 加主键 | 不支持 Online,需锁表 | 建表时规划好主键 |
RC 下意外范围锁 | 与 MySQL RC 行为不同 | 关键业务实测验证锁行为 |
外键依赖 | 完全不支持 | 在应用层维护引用完整性 |
文档反馈