比方說,你有如下任何插入查詢 -衝突(主鍵)postgres 9.5+比不存在的地方更快?
insert into abc select * from def dd where not exists (select 1 from abc aa where aa.id = dd.id);
Vs的
insert into abc select * from def dd on conflict(id) do nothing;
哪一個是更快?
兩個表是真正的大和想法是,如果有一個與主鍵
第二個應該更快,但你爲什麼不把它作爲基準? –
會這樣做,謝謝 – Tisha
在你的例子中,我希望後者更快。但是如果你的select實際上更復雜(並且包含多個連接),從頭開始排除行可能會更快,儘管取決於兩個表的大小,但使用WHERE id NOT IN(SELECT id FROM abc)'。 – jcaron