⚡ 编程实验室🏗️ 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分区表实战

掌握MySQL分区表的创建、管理与查询优化技术。 · 难度:入门 · +15XP

什么是分区表?

分区表是将一个大表按照某种规则拆分成多个物理子表,但在逻辑上仍是一个整体。分区可以提高查询性能、简化数据管理和提升维护效率。

分区类型

类型说明
RANGE分区基于列值的范围分区
LIST分区基于列值的列表分区
HASH分区基于哈希函数的分区
KEY分区类似HASH,但使用MySQL内置函数

创建RANGE分区表

CREATE TABLE orders (
    order_id INT NOT NULL,
    order_date DATE NOT NULL,
    amount DECIMAL(10,2)
) PARTITION BY RANGE (YEAR(order_date)) (
    PARTITION p2019 VALUES LESS THAN (2020),
    PARTITION p2020 VALUES LESS THAN (2021),
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION p_future VALUES LESS THAN MAXVALUE
);

查询分区信息

-- 查看分区信息
SELECT * FROM INFORMATION_SCHEMA.PARTITIONS 
WHERE TABLE_NAME = 'orders';

-- 查看分区数据分布 EXPLAIN SELECT * FROM orders WHERE order_date = '2020-06-15';

管理分区

-- 添加分区
ALTER TABLE orders ADD PARTITION (
    PARTITION p2022 VALUES LESS THAN (2023)
);

-- 删除分区 ALTER TABLE orders TRUNCATE PARTITION p2019;

-- 合并分区 ALTER TABLE orders REORGANIZE PARTITION p2020,p2021 INTO ( PARTITION p2020_2021 VALUES LESS THAN (2022) );

练习提示:创建一个按年份分区的销售表,插入跨年数据并测试分区裁剪效果。

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

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0