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