postgresql – 将大型CSV加载到Postgres中

前端之家收集整理的这篇文章主要介绍了postgresql – 将大型CSV加载到Postgres中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过复制命令将大约100M记录(磁盘上大约8GB)的CSV加载到Postgres:使用CSV从’path / to / myfile.csv’复制mytable;我一直在通过检查pgAdmin中报告的表大小并将其与CSV大小进行比较来监视进度.我知道这最多只是一个松散的比较,我很想知道是否有更好的方法来监控进度.

这是问题:这个负载已经持续了很长时间(我认为太长了),而且随着我不断检查表的大小,负载似乎正在减速.也就是说,现在加载新的100MB数据需要比以前在加载中更长的时间.为什么?

除了将我的CSV分解成许多小文件之外,我是否可以采用任何调整,配置或替代方法来实现更快的负载

更新:架构/数据细节

一个代表性数据行:

1234567890,FOOBARF,2010-01-15 03:07:05,0.924700,0.925000

完整的架构定义:

CREATE TABLE mytable
(
  id integer NOT NULL,rname character varying(7) NOT NULL,ts timestamp without time zone NOT NULL,stat1 numeric NOT NULL,stat2 numeric NOT NULL,CONSTRAINT pk_id PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE mytable OWNER TO postgres;
如果你可以禁用索引,你可能会有更好的运气.但这并不是一个好的答案,因为您没有提供有关该表的足够信息.

请发布表定义,约束,索引!!!和触发器.

另外,您确定CSV数据是否正确且与您的表格匹配?

猜你在找的Postgre SQL相关文章