更新时间:2022-09-06 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)
);