锁和索引

尽管 Postgres 提供对表数据访问的非阻塞的读/写,但并非所有Postgres 里实现的索引访问模式都能够进行非阻塞读/写。
各种各样的索引类型按照下面方法操作:
 
GiST 和 R-Tree 索引
共享/排他的索引级锁用于读/写访问。锁在语句完成后释放。
Hash (散列)索引
共享/排他的页面级锁用于读/写访问。锁在页面处理完成后释放。

 

 

页面级锁比索引级的锁提供了更好的并行性但是容易产生死锁。

Btree
短期的共享/排他的页面级的销用于读/写访问。销在索引记录被插入/抓取后立即释放。