-- 创建分区表的示例代码
-- 1. 按范围分区 (RANGE)
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
);
-- 解释:
-- 这个表按销售日期的年份进行分区。每个分区包含特定年份范围内的数据。
-- 例如,p0 包含 2020 年之前的数据,p1 包含 2020 年的数据,依此类推。
-- 2. 按列表分区 (LIST)
CREATE TABLE employees (
id INT NOT NULL,
department_id INT NOT NULL,
name VARCHAR(50)
)
PARTITION BY LIST (department_id) (
PARTITION p_sales VALUES IN (1, 2, 3),
PARTITION p_marketing VALUES IN (4, 5),
PARTITION p_engineering VALUES IN (6, 7, 8)
);
-- 解释:
-- 这个表按部门 ID 进行分区。每个分区包含特定部门 ID 的数据。
-- 例如,p_sales 包含部门 ID 为 1、2 和 3 的员工,p_marketing 包含部门 ID 为 4 和 5 的员工。
-- 3. 按哈希分区 (HASH)
CREATE TABLE orders (
order_id INT NOT NULL,
customer_id INT NOT NULL,
order_date DATE NOT NULL
)
PARTITION BY HASH (YEAR(order_date))
PARTITIONS 4;
-- 解释:
-- 这个表按订单日期的年份进行哈希分区。数据会被均匀地分布到 4 个分区中。
-- 哈希分区适用于需要均匀分布数据的场景。
-- 4. 按键值分区 (KEY)
CREATE TABLE customers (
customer_id INT NOT NULL,
name VARCHAR(50),
email VARCHAR(100)
)
PARTITION BY KEY (customer_id)
PARTITIONS 8;
-- 解释:
-- 这个表按客户 ID 进行键值分区。数据会被均匀地分布到 8 个分区中。
-- 键值分区类似于哈希分区,但使用 MySQL 内部的哈希函数。
上一篇:mysql删表
下一篇:flink cdc mysql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站