雖然 PostgreSQL 提供了對表格資料的非阻塞讀/寫存取,但目前並非 PostgreSQL 中實作的每個索引存取方法都提供非阻塞讀/寫存取。 各種索引類型處理方式如下:
短期的共享/獨佔頁面層級鎖用於讀/寫存取。鎖在每次獲取或插入索引列後立即釋放。這些索引類型提供最高的並行性,且沒有死鎖狀況。
共享/獨佔雜湊桶層級鎖用於讀/寫存取。鎖在處理完整個桶後釋放。桶層級鎖比索引層級鎖提供更好的並行性,但可能發生死鎖,因為鎖持有時間比單個索引操作長。
短期的共享/獨佔頁面層級鎖用於讀/寫存取。鎖在每次獲取或插入索引列後立即釋放。但請注意,插入 GIN 索引值通常會為每列產生多個索引鍵插入,因此 GIN 可能會為單個值的插入執行大量工作。
目前,B-tree 索引為並行應用程式提供最佳效能;由於它們也比雜湊索引具有更多功能,因此它們是需要索引純量資料的並行應用程式的建議索引類型。 在處理非純量資料時,B-tree 沒有用處,而應改用 GiST、SP-GiST 或 GIN 索引。
如果您在文件中發現任何不正確、與特定功能的使用經驗不符或需要進一步澄清的內容,請使用此表單來回報文件問題。