我正在尝试在生产中同时创建索引。但是,这样做时,通过查看时的索引会\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'
:看:
Postgres 12 或更高版本具有系统视图
pg_stat_progress_create_index
。看:Postgres 9.6 将于 2021 年 11 月 EOL,考虑升级到当前版本!