为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:3.0.1
- 【问题描述】:
创建两张一样的表test1和test2,test1是预热分region,test2是创建好表之后再spilt分的region,插入60W条数据,show table regions看到test1是29个region,test2却是38个region,查看region大小发现test2有8个region大小为0
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
预分 region 以及 split region 的命令可以发下吗?
CREATE TABLE test1
(
表结构
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin/*!90000 SHARD_ROW_ID_BITS=5 PRE_SPLIT_REGIONS=5 */ COMMENT=‘弹幕信息表’;
CREATE TABLE test2
(
id
bigint(64) NOT NULL COMMENT ‘唯一id’,
表结构
UNIQUE KEY id_uniq_index
(id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin/*!90000 SHARD_ROW_ID_BITS=5 */ COMMENT=‘弹幕信息表’;
SPLIT TABLE barrage_message_info BETWEEN (-9223372036854775808) AND (9223372036854775807) REGIONS 16;
我在我测试环境测试了一下是符合预期的,版本是 v3.0.5
另外,PRE_SPLIT_REGIONS=5 表示预分 2^5=32 个 region,所以对应的 SPLIT TABLE 也应该是 16。
SPLIT TABLE 是在 60W 数据插入之后操作的还是在插入之前?
是在插入数据之前SPLIT TABLE的
建议升级到新版本后再测试一下,看是否现象相同
好的,谢谢