PostgreSQL建立索引避免锁表

xiaoxiao2021-02-28  63

正常情况下Postgresql建立普通btree索引时会阻塞DML(insert,update,delete)操作,直到索引完成,期间读操作不受阻塞。oracle数据库有在线创建的选项online。Postgresql也提供了相关的功能concurrently,使用方法:

create index concurrently index_name on tablename();

使用concurrently的代价

不使用这个参数建索引时DB只扫描一次表,使用这个参数时,会引发DB扫两次表,同时等待所有潜在会读到该索引的事务结束,系统的CPU和IO,内存等会受一些影响。

bz y
转载请注明原文地址: https://www.6miu.com/read-2631423.html

最新回复(0)