Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql partition by

作者:蛋蛋的憂傷   发布日期:2025-02-05   浏览:83

-- 创建一个按范围分区的表,以日期为例
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 外键

下一篇:mysql limit offset

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

python mysql update

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站