更新时间:2022-09-23 GMT+08:00
创建表
- 禁止创建表名以"_ddm"为前缀的表,系统默认认定此类表为系统内部表。
- 拆分表不支持全局唯一索引,当唯一键和拆分键不一致时,不能保证数据的唯一性。
- 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据类型不建议作为自增键的类型,容易越界造成值重复。
分库分表
假设使用HASH的拆分库算法,拆分表算法为MOD_HASH,样例如下:
CREATE TABLE tbpartition_tbl ( id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', name varchar(128), PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci DBPARTITION BY HASH(id) TBPARTITION BY mod_hash(name) tbpartitions 8;
分库不分表
假设使用HASH的拆分库算法,样例如下:
CREATE TABLE dbpartition_tbl ( id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', name varchar(128), PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci DBPARTITION BY HASH(id);
广播表
如下为创建广播表的样例:
CREATE TABLE broadcast_tbl ( id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', name varchar(128), PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci BROADCAST;
单表
单表也可以指定全局序列,但是会忽略这个功能。自增功能使用底层存储的自增值进行自增。
创建单表样例如下,不做任何拆分:
CREATE TABLE single( id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', name varchar(128), PRIMARY KEY(id) );
父主题: DDL