postgreSQL 索引(二)类型介绍
2018-12-02 本文已影响0人
飞行员舒克_ed03
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)适用于块中查找最大值最小值。