以下大部分内容非原创,整理自阿里云官方文档
单库单表
建一张单库单表,不做任何拆分。
CREATE TABLE single_tbl(
id int,
name varchar(30),
primary key(id)
);
show topology from single_tbl;
CREATE TABLE normal_table(
id int,
name varchar(30),
primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
分库不分表
假设已经建好的分库数为 8,建一张表,只分库不分表,分库方式为根据 id 列哈希。
CREATE TABLE multi_db_single_tbl(
id int,
name varchar(30),
primary key(id)
) dbpartition by hash(id);
show topology from multi_db_single_tbl;
分库分表
使用哈希函数做拆分
CREATE TABLE multi_db_multi_tbl(
id int auto_increment,
bid int,
name varchar(30),
primary key(id)
) dbpartition by hash(id) tbpartition by hash(bid) tbpartitions 3;
show topology from multi_db_m