PARTITION BY RANGE子句来定义分区方案,例如:CREATE TABLE my_table (在上述示例中,我们将
id INT,
name VARCHAR(50)
)
PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
my_table表按照id列的范围进行分区,其中p0分区存放id小于10的数据,p1分区存放id小于20的数据,p2分区存放剩余的数据。PARTITION BY LIST子句来定义分区方案,例如:CREATE TABLE my_table (在上述示例中,我们将
id INT,
name VARCHAR(50)
)
PARTITION BY LIST (name) (
PARTITION p0 VALUES IN ('John', 'Mike'),
PARTITION p1 VALUES IN ('Amy', 'Lisa'),
PARTITION p2 VALUES IN (DEFAULT)
);
my_table表按照name列的值列表进行分区,其中p0分区存放name为'John'或'Mike'的数据,p1分区存放name为'Amy'或'Lisa'的数据,p2分区存放剩余的数据。CREATE TABLE语句来创建分片表,并使用UNION ALL语句将分片合并为一个虚拟表,例如:CREATE TABLE shard_0 SELECT id, name FROM my_table WHERE id < 1000;在上述示例中,我们将
CREATE TABLE shard_1 SELECT id, age FROM my_table WHERE id >= 1000;
CREATE VIEW my_table AS SELECT * FROM shard_0 UNION ALL SELECT * FROM shard_1;
my_table表按照id列进行垂直分片,其中shard_0存放id小于1000的数据,shard_1存放id大于等于1000的数据,然后使用UNION ALL语句将两个分片合并为一个虚拟表。CREATE TABLE语句来创建分片表,并使用UNION ALL语句将分片合并为一个虚拟表,例如:CREATE TABLE shard_0 SELECT * FROM my_table WHERE id % 2 = 0;在上述示例中,我们将
CREATE TABLE shard_1 SELECT * FROM my_table WHERE id % 2 = 1;
CREATE VIEW my_table AS SELECT * FROM shard_0 UNION ALL SELECT * FROM shard_1;
my_table表按照id列进行水平分片,其中shard_0存放id为偶数的行数据,shard_1存放id为奇数的行数据,然后使用UNION ALL语句将两个分片合并为一个虚拟表。本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
