Postgresql
為什麼我的 Postgres 9.6 創建索引並發無效?
我正在嘗試在生產中同時創建索引。但是,這樣做時,通過查看時的索引會
\d
說INVALID
。為什麼會這樣?以前從未見過它發生過。
已嘗試重新創建但仍然遇到相同的問題:
指數:
create index concurrently idx_wallet_customer_id_credit_stake_expires on wallet (customer_id,wallet_credit_stake,wallet_expires) where wallet_closed is null and wallet_staked is null;
在
CONCURRENTLY
後台建構索引,不使用獨占鎖 最後一步是使索引“有效”,但這要等到最後一個並發事務完成後才會發生。檢查長時間執行的事務。主要嫌疑人將是那些state = 'idle in transaction'
:SELECT * FROM pg_stat_activity;
看:
Postgres 12 或更高版本具有系統視圖
pg_stat_progress_create_index
。看:Postgres 9.6 將於 2021 年 11 月 EOL,考慮升級到目前版本!