我的情景: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