我正在尝试通过复制命令将大约 100M 记录(磁盘上大约 8GB)的 CSV 加载到 Postgres :copy mytable from 'path/to/myfile.csv' with CSV;我一直在通过检查 pgAdmin 中报告的表大小并将其与 CSV 大小进行比较来监视进度。我知道这充其量只是一个松散的比较,我很想知道是否有更好的方法来监控进度。
问题是:这个加载已经持续了很长时间(我认为太长了),当我不断检查表大小时,加载似乎正在减速。也就是说,现在加载新的 100MB 数据所需的时间比之前加载的时间长得多。为什么?
除了将我的 CSV 分解成许多较小的文件之外,是否有任何调整、配置或替代方法可以加快加载速度?
更新:架构/数据细节
一个有代表性的数据行:
1234567890,FOOBARF,2010-01-15 03:07:05,0.924700,0.925000
Run Code Online (Sandbox Code Playgroud)
完整的架构定义:
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;
Run Code Online (Sandbox Code Playgroud)