postgreSQL 索引(二)型別介紹

weixin_34129145發表於2018-12-02

pg的索引有如下幾類:B-tree, Hash, GiST, SP-GiST,GIN, BRIN.每個索引都使用不同的演算法,每種演算法都匹配不同的型別資料的查詢。CREATE INDEX 命令預設建立適合大多數資料型別的B-tree 索引。

B-tree 索引可以應用於相等和值範圍的查詢,例如:

<,<=,=,>=,>,
between
in
is null
is not null

也適用

like 'foo' 
~ '^foo'  --正則匹配
like 'foo%'

但不適用like ‘%foo’。

B-tree也支援排序。雖然他不總是比簡單的掃描和排序快,但會非常有用。

Hash索引只能處理簡單的相等比較, 但查詢計劃不管是否對已建立雜湊索引的列使用等號,會將全部執行雜湊索引。
雜湊索引常見的的命令如下:

CREATE INDEX name ON table USING HASH (column);

GiST索引適用於二維地理位置資料等。
SP-GiST 適用於二維點座標資料的索引等。
GIN索引適用於陣列等。
BRIN(Block Range INdexes)適用於塊中查詢最大值最小值。

------------------分割線---------------------
如果覺得寫的好,請關注我們的公眾號


8155989-d7cfe697173859ed.jpg
qrcode_for_gh_f9cc78dcbc68_258.jpg

相關文章