我的情景:PostgreSQL的并行BULK INSERT不并行
- 10个工作
- 数据库已成立100个最大连接数
- 每个工人都有自己的数据库连接(最多10个连接。 )
- 每个工人开始一笔交易(BEGIN; COMMIT;)
- 每个工人都将数据插入交易中的批量插入同一表中
- 要插入的数据例如一个百万行
- 每个工人处理
每个工人的查询1000行(尺寸1000批次):
BEGIN;
INSERT INTO "test_tbl" ("id",...) VALUES
(...),(...),...[1000 entries]... RETURNING id;
COMMIT;
表test_tbl
只与指数CREATE UNIQUE INDEX formulas_pkey ON formulas USING btree (id)
PRIMARY KEY (id)
问题
经过许多小时的分析后,接线员工等待另一名工人完成插入。为什么工人不能同时将新数据插入同一张表中?
UPDATE
我已经删除了所有的约束和所有索引(主键,外键等),但仍是同样的问题。没有并行化。
补充说明:
- 数据到例如插入一个百万行
- 每个工人处理1000行(大小1000的批次)
相似[SO question](http://stackoverflow.com/q/32087233/1835769)。 – displayName