在 PostgreSQL 中创建索引不会锁定整个表,但在创建索引的过程中可能会锁定部分表数据。当创建一个索引时,PostgreSQL 会获取一个 AccessExclusiveLock 锁来锁定正在创建索引的表,这个过程可能会阻止其他事务对表进行写操作,但不会阻止读操作。
因此,创建索引不会锁定整个表,但可能会对表的写操作产生一定程度的影响。如果对表的写操作是一个瓶颈,可以考虑在低峰时段进行创建索引操作,或者使用并发创建索引的功能来减轻影响。