-- 创建一个按范围分区的表,以日期为例
CREATE TABLE sales (
id INT NOT NULL,
sale_date DATE NOT NULL,
amount DECIMAL(10, 2)
)
PARTITION BY RANGE (YEAR(sale_date)) (
PARTITION p0 VALUES LESS THAN (2020),
PARTITION p1 VALUES LESS THAN (2021),
PARTITION p2 VALUES LESS THAN (2022),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
-- 解释:
-- 1. 这个表 `sales` 按照 `sale_date` 字段的年份进行分区。
-- 2. `PARTITION BY RANGE (YEAR(sale_date))` 表示使用 `sale_date` 的年份作为分区键。
-- 3. `VALUES LESS THAN` 定义了每个分区的数据范围。例如,`p0` 包含所有年份小于 2020 的记录。
-- 4. `MAXVALUE` 表示大于或等于所有指定值的分区。
-- 创建一个按列表分区的表,以地区为例
CREATE TABLE customers (
id INT NOT NULL,
region VARCHAR(10) NOT NULL,
name VARCHAR(50)
)
PARTITION BY LIST (region) (
PARTITION p_north VALUES IN ('north'),
PARTITION p_south VALUES IN ('south'),
PARTITION p_east VALUES IN ('east'),
PARTITION p_west VALUES IN ('west')
);
-- 解释:
-- 1. 这个表 `customers` 按照 `region` 字段进行分区。
-- 2. `PARTITION BY LIST (region)` 表示使用 `region` 字段的值作为分区键。
-- 3. `VALUES IN` 定义了每个分区包含的具体值。例如,`p_north` 包含所有 `region` 为 'north' 的记录。
-- 创建一个按哈希分区的表,以用户ID为例
CREATE TABLE users (
user_id INT NOT NULL,
username VARCHAR(50),
email VARCHAR(100)
)
PARTITION BY HASH(user_id)
PARTITIONS 4;
-- 解释:
-- 1. 这个表 `users` 按照 `user_id` 字段进行哈希分区。
-- 2. `PARTITION BY HASH(user_id)` 表示使用 `user_id` 字段的哈希值作为分区键。
-- 3. `PARTITIONS 4` 表示将数据分成 4 个分区。
上一篇:mysql 外键
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站