簡體   English   中英

如何在postgres中的兩列上並行創建索引

[英]How to create index parallelly on two columns in postgres

我想在有 5 億行的表上創建兩個索引,由於索引創建需要一些時間才能完成,我正在考慮並行運行兩個索引語句,但我不知道如何,我想使用過程來創建索引,這是我的 function:

CREATE OR REPLACE PROCEDURE test() LANGUAGE plpgsql AS $PROCEDURE$
BEGIN
   SET statement_timeout = 7200000;
   COMMIT;
   CREATE INDEX IF NOT EXISTS idx_tt1_org_id ON temp_table_1(org_id);
   CREATE INDEX IF NOT EXISTS idx_tt1_input_id ON temp_table_1(input_id);
END;$PROCEDURE$;

請幫助我如何並行運行這些索引語句。 謝謝

您需要打開兩個會話並在每個 session 中創建一個索引。 所以你不能從一個程序中做到這一點。 (您可能可以通過 dblink 的棘手使用或讓程序打開其他連接的東西來解決這個問題)。

現代數據庫版本(不是長期 EOL 9.1)將自動並行化各個 btree 索引的創建,因此如果每個都已經並行發生,那么嘗試同時創建多個索引可能沒有多大意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM