⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MySQL 分区表实践

学习使用RANGE、LIST、HASH等分区类型管理大表数据。 · 难度:入门 · +15XP

MySQL 分区表

分区表将一张大表的数据物理拆分为多个独立的分区,每个分区可以单独管理,从而提高查询性能和维护效率。MySQL支持RANGE、LIST、HASH、KEY四种分区类型。

RANGE分区

按列值的范围进行分区,适合按日期或ID范围查询的场景。

CREATE TABLE orders (
    order_id INT NOT NULL,
    order_date DATE NOT NULL,
    amount DECIMAL(10,2)
) PARTITION BY RANGE (YEAR(order_date)) (
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION p2022 VALUES LESS THAN (2023),
    PARTITION p2023 VALUES LESS THAN (2024),
    PARTITION p_future VALUES LESS THAN MAXVALUE
);

LIST分区

按离散值列表分区,适合按地区或状态分类。

CREATE TABLE employees (
    emp_id INT,
    dept_id INT
) PARTITION BY LIST (dept_id) (
    PARTITION p_eng VALUES IN (1,3,5),
    PARTITION p_sales VALUES IN (2,4,6)
);

HASH分区

通过哈希函数均匀分布数据,适合没有明显范围特征的场景。

分区修剪

优化器会自动跳过不包含目标数据的分区,大幅减少扫描量。使用EXPLAIN PARTITIONS可查看哪些分区被访问。

练习提示

创建一个按年份分区的销售表,插入跨年数据,然后查询某一年份的数据并验证分区修剪效果。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0