PostgreSQL创建分区表,并插入大量数据

创建分区表,按日期范围分区

sql 复制代码
CREATE TABLE sales (
    id              serial,
    sale_date DATE,    
    amount NUMERIC,    
    PRIMARY KEY(id, sale_date)
) PARTITION BY RANGE (sale_date);

创建分区

sql 复制代码
CREATE TABLE sales_2019 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2020-01-01'); 
CREATE TABLE sales_2020 PARTITION OF sales FOR VALUES FROM ('2020-01-01') TO ('2021-01-01'); 
CREATE TABLE sales_2021 PARTITION OF sales FOR VALUES FROM ('2021-01-01') TO ('2022-01-01'); 
CREATE TABLE sales_2022 PARTITION OF sales FOR VALUES FROM ('2022-01-01') TO ('2023-01-01'); 
CREATE TABLE sales_2023 PARTITION OF sales FOR VALUES FROM ('2023-01-01') TO ('2024-01-01'); 

插入随机日期和随机金额数据,每次插入2190001条数据

sql 复制代码
INSERT INTO sales (sale_date, amount)  
SELECT generate_series(to_date('2019-01-01','yyyy-mm-dd'), to_date('2023-12-31','yyyy-mm-dd'), '0.02 hours'), (random()*100.)::numeric(6,2);

测试性能

sql 复制代码
select count(1) from sales;

插入数据sql参考:https://pgfans.cn/a/1726

原文中有中类型的随机数据插入可供参考。

相关推荐
ID_1800790547310 小时前
Python结合淘宝关键词API进行商品价格监控与预警
服务器·数据库·python
数据知道10 小时前
PostgreSQL 故障排查:万字详解如何找出数据库中的死锁
数据库·postgresql
AI_567811 小时前
阿里云OSS成本优化:生命周期规则+分层存储省70%
运维·数据库·人工智能·ai
choke23311 小时前
软件测试任务测试
服务器·数据库·sqlserver
龙山云仓11 小时前
MES系统超融合架构
大数据·数据库·人工智能·sql·机器学习·架构·全文检索
IT邦德11 小时前
OEL9.7 安装 Oracle 26ai RAC
数据库·oracle
jianghua00111 小时前
Django视图与URLs路由详解
数据库·django·sqlite
大尚来也11 小时前
双库协同,各取所长:.NET Core 中 PostgreSQL 与 SQLite 的优雅融合实战
postgresql·sqlite·.netcore
那我掉的头发算什么11 小时前
【Mybatis】Mybatis-plus使用介绍
服务器·数据库·后端·spring·mybatis
倔强的石头10611 小时前
关系数据库替换用金仓:数据迁移过程中的完整性与一致性风险
数据库·kingbase