[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-deep-evm-25-postgresql-biao-fenqu-qianwan-hang":3},{"article":4,"author":55},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":16,"meta_description":17,"focus_keyword":18,"og_image":19,"canonical_url":19,"robots_meta":20,"created_at":15,"updated_at":15,"tags":21,"category_name":24,"related_articles":35},"d3000000-0000-0000-0000-000000000125","a0000000-0000-0000-0000-000000000035","Deep EVM #25：PostgreSQL表分区——当你的表超过1000万行","deep-evm-25-postgresql-biao-fenqu-qianwan-hang","PostgreSQL大表分区实用指南。涵盖范围分区、列表分区和哈希分区，包含迁移策略和性能基准测试。","## 何时需要分区\n\n当表行数超过1000万时，查询性能开始下降。PostgreSQL的表分区将大表分成更小的物理片段，同时保持逻辑上的统一视图。\n\n## 分区类型\n\n### 范围分区\n按时间范围最常见，适合时序数据：\n\n```sql\nCREATE TABLE transactions (\n    id BIGSERIAL,\n    created_at TIMESTAMPTZ NOT NULL,\n    amount NUMERIC\n) PARTITION BY RANGE (created_at);\n\nCREATE TABLE transactions_2024_q1\n    PARTITION OF transactions\n    FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');\n```\n\n### 列表分区\n按离散值分区：\n\n```sql\nCREATE TABLE orders (\n    id BIGSERIAL,\n    region TEXT NOT NULL,\n    total NUMERIC\n) PARTITION BY LIST (region);\n```\n\n### 哈希分区\n均匀分布数据：\n\n```sql\nCREATE TABLE events (\n    id BIGSERIAL,\n    user_id BIGINT NOT NULL\n) PARTITION BY HASH (user_id);\n```\n\n## 迁移策略\n\n将现有大表迁移到分区表需要仔细规划：\n1. 创建新的分区表\n2. 分批复制数据\n3. 切换表名\n4. 验证数据完整性\n\n## 性能影响\n\n分区表在适当查询下可以将性能提升10-100倍，因为分区剪枝允许PostgreSQL只扫描相关分区。\n\n## 总结\n\n表分区是PostgreSQL处理大数据量的核心工具。选择正确的分区策略并配合适当的索引，可以使数据库在数亿行数据下仍然保持高性能。","\u003Ch2 id=\"\">何时需要分区\u003C\u002Fh2>\n\u003Cp>当表行数超过1000万时，查询性能开始下降。PostgreSQL的表分区将大表分成更小的物理片段，同时保持逻辑上的统一视图。\u003C\u002Fp>\n\u003Ch2 id=\"\">分区类型\u003C\u002Fh2>\n\u003Ch3>范围分区\u003C\u002Fh3>\n\u003Cp>按时间范围最常见，适合时序数据：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sql\">CREATE TABLE transactions (\n    id BIGSERIAL,\n    created_at TIMESTAMPTZ NOT NULL,\n    amount NUMERIC\n) PARTITION BY RANGE (created_at);\n\nCREATE TABLE transactions_2024_q1\n    PARTITION OF transactions\n    FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>列表分区\u003C\u002Fh3>\n\u003Cp>按离散值分区：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sql\">CREATE TABLE orders (\n    id BIGSERIAL,\n    region TEXT NOT NULL,\n    total NUMERIC\n) PARTITION BY LIST (region);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>哈希分区\u003C\u002Fh3>\n\u003Cp>均匀分布数据：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sql\">CREATE TABLE events (\n    id BIGSERIAL,\n    user_id BIGINT NOT NULL\n) PARTITION BY HASH (user_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"\">迁移策略\u003C\u002Fh2>\n\u003Cp>将现有大表迁移到分区表需要仔细规划：\u003C\u002Fp>\n\u003Col>\n\u003Cli>创建新的分区表\u003C\u002Fli>\n\u003Cli>分批复制数据\u003C\u002Fli>\n\u003Cli>切换表名\u003C\u002Fli>\n\u003Cli>验证数据完整性\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"\">性能影响\u003C\u002Fh2>\n\u003Cp>分区表在适当查询下可以将性能提升10-100倍，因为分区剪枝允许PostgreSQL只扫描相关分区。\u003C\u002Fp>\n\u003Ch2 id=\"\">总结\u003C\u002Fh2>\n\u003Cp>表分区是PostgreSQL处理大数据量的核心工具。选择正确的分区策略并配合适当的索引，可以使数据库在数亿行数据下仍然保持高性能。\u003C\u002Fp>\n","zh","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:26.315810Z","PostgreSQL表分区——当你的表超过1000万行","PostgreSQL表分区实用指南：范围、列表和哈希分区，迁移策略和性能基准测试。","postgresql表分区",null,"index, follow",[22,27,31],{"id":23,"name":24,"slug":25,"created_at":26},"c0000000-0000-0000-0000-000000000012","DevOps","devops","2026-03-28T10:44:21.513630Z",{"id":28,"name":29,"slug":30,"created_at":26},"c0000000-0000-0000-0000-000000000022","Performance","performance",{"id":32,"name":33,"slug":34,"created_at":26},"c0000000-0000-0000-0000-000000000005","PostgreSQL","postgresql",[36,43,49],{"id":37,"title":38,"slug":39,"excerpt":40,"locale":12,"category_name":41,"published_at":42},"d0000000-0000-0000-0000-000000000668","为什么Bali在2026年正在成为东南亚的影响力科技中心","weishenme-bali-2026-zhengzai-chengwei-dongnanya-yingxiangli-keji-zhongxin","Bali在东南亚创业生态系统中排名第16位。随着Web3构建者、AI可持续发展初创公司和生态旅游科技公司的集中，该岛正在打造区域影响力科技之都的独特定位。","工程","2026-03-28T10:44:48.898750Z",{"id":44,"title":45,"slug":46,"excerpt":47,"locale":12,"category_name":41,"published_at":48},"d0000000-0000-0000-0000-000000000667","ASEAN数据保护拼图：开发者合规清单","asean-shuju-baohu-pintu-kaifazhe-heguiqingdan","七个ASEAN国家现已拥有全面的数据保护法律，各自具有不同的同意模型、本地化要求和处罚结构。这是一份为构建多国应用程序的开发者准备的实用合规清单。","2026-03-28T10:44:48.893467Z",{"id":50,"title":51,"slug":52,"excerpt":53,"locale":12,"category_name":41,"published_at":54},"d0000000-0000-0000-0000-000000000666","Indonesia 290亿美元数字化转型：软件公司的机遇","indonesia-290yi-meiyuan-shuzihua-zhuanxing-ruanjian-gongsi-jiyu","Indonesia IT服务市场预计在2026年达到290.3亿美元，高于2025年的243.7亿美元。云基础设施、AI、电子商务和数据中心正在推动东南亚最快的增长。","2026-03-28T10:44:48.875457Z",{"id":13,"name":56,"slug":57,"bio":58,"photo_url":19,"linkedin":19,"role":59,"created_at":60,"updated_at":60},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]