⚡ 编程实验室🏗️ 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🎮 游戏🏠 网站首页

PG分区表实战与优化

学会使用PostgreSQL分区表提升大数据量查询性能 · 难度:入门 · +15XP

分区表概念

分区表是将一张大表拆分为多个物理子表(分区)的技术。PostgreSQL支持范围分区、列表分区和哈希分区。

创建分区表

CREATE TABLE sales (
    id SERIAL,
    sale_date DATE NOT NULL,
    amount NUMERIC
) PARTITION BY RANGE (sale_date);

CREATE TABLE sales_2024_q1 PARTITION OF sales FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');

CREATE TABLE sales_2024_q2 PARTITION OF sales FOR VALUES FROM ('2024-04-01') TO ('2024-07-01');

插入与查询

数据会自动路由到对应分区:

INSERT INTO sales (sale_date, amount) VALUES ('2024-02-15', 100);
INSERT INTO sales (sale_date, amount) VALUES ('2024-05-20', 200);

-- 查询会自动只扫描相关分区 EXPLAIN SELECT * FROM sales WHERE sale_date = '2024-02-15';

分区优势

优势说明
查询性能提升分区裁剪减少扫描数据量
管理便捷可独立操作分区,如删除旧分区
维护灵活分开执行VACUUM、索引重建

练习提示

尝试创建一个按月份分区的订单表,并插入不同月份的数据,使用EXPLAIN验证分区裁剪效果。

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

🏆 学习排行

加载中...

📊 统计

📖 131 篇
0 完成
🔥 0