日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

postgreSQL的索引

發布時間:2024/9/30 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgreSQL的索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

postgreSQL的索引主要有如下幾類:B-tree、Hash、GIN、GiST、SP-GiST、BRIN。每個索引都有特定的算法來匹配不同的類型數據的查詢。

B-tree

? ? ? ?索引可以應用于等值和范圍查詢,例如:<,<=,=,>=,>, betwee, in, is null,還有like模糊查詢、排序。B-tree適合大多數數據類型,是默認創建使用的索引。

Hash

hash索引存儲的是被索引字段VALUE的哈希值,只支持等值查詢。
hash索引特別適用于字段VALUE非常長(不適合b-tree索引,因為b-tree一個PAGE至少要存儲3個ENTRY,所以不支持特別長的VALUE)的場景,例如很長的字符串,并且用戶只需要等值搜索,建議使用hash index。

GIN

gin是倒排索引,非常適合全文檢索或者包含多個關鍵字的數組。如jsonb格式的字段就可以使用gin索引

GIST

GiST索引不是一種單獨的索引類型,而是一種架構,可以在該架構上實現很多不同的索引策略。從而可以使GiST索引根據不同的索引策略,而使用特定的操作符類型。
索引適用于像like '%foo';的模糊查詢,如create extension if not exists pg_trgm; CREATE INDEX trgm_idx ON test_trgm USING GIST (t gist_trgm_ops);

BRIN 塊級索引

? ? ? ?關鍵字:索引占用空間小,物理上連續的存儲時查詢很快。

? ? ? ?Block Range Index的簡稱,適用塊的區域搜索,即物理位置是相鄰的。BRIN 索引是塊級索引,可以很好的解決空間問題。有別于B-TREE等索引,BRIN記錄并不是以行號為單位記錄索引明細,而是記錄每個數據塊或者每段連續的數據塊的統計信息,如會保存128個塊(默認)數據(1MB)的最小和最大值。因此BRIN索引空間占用特別的小,對數據寫入、更新、刪除的影響也很小。
? ? ? ?BRIN屬于LOSSLY索引,當被索引列的值與物理存儲相關性很強時,例如在時間或序列字段創建BRIN索引,通過BRIN索引進行等值、范圍查詢時效果很棒。如設備上報的事件,按時間順序排列并插入,一段時間內的事件記錄存儲的物理位置是相鄰的,因此查詢一段時間內的事件,效率很高。

? ? ? ?如果物理位置不相鄰,可以使用如下命令整理CLUSTER [VERBOSE] table_name [ USING index_name ]。

總結

以上是生活随笔為你收集整理的postgreSQL的索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。