主动树立正确索引(btree,hash,gin,gist,spITeye - AG环亚娱乐集团

主动树立正确索引(btree,hash,gin,gist,spITeye

2019-01-11 02:27:50 | 作者: 昆鹏 | 标签: 索引,主动,接口 | 浏览: 223

阅览原文请点击;http://click.aliyun.com/m/23941/
摘要: 标签 PostgreSQL , 索引接口 , 主动创立索引 , 主动挑选索引接口 , (btree,hash,bitmap,gin,gist,sp-gist,brin,rum,bloom,zoomdb) 布景 PostgreSQL的索引接口是敞开的,支撑btree,hash,bitmap,gin,gist,sp-gist,brin,rum,bloom,zoomdb等索引接口。

标签

PostgreSQL , 索引接口 , 主动创立索引 , 主动挑选索引接口 , (btree,hash,bitmap,gin,gist,sp-gist,brin,rum,bloom,zoomdb)

布景

PostgreSQL的索引接口是敞开的,支撑btree,hash,bitmap,gin,gist,sp-gist,brin,rum,bloom,zoomdb等索引接口。因而,不同的数据类型,有不同的索引结构能够挑选。

因为索引接口许多(应对不同的场景),一些用户或许无法判别应该挑选运用哪种索引办法。

尽管我在许多文章中有提到过索引的原理以及挑选办法,可是全部为懒人效劳,所以咱们看看怎么把创立索引变得更简略,让数据库主动挑选最合适的索引办法。

假如你想了解各种索引的用处,你也能够参阅一下手册或许以下CASE的文章,了解索引的原理和运用场景。

《懒人推进社会进步 - 多列聚合, gin与数据散布(挑选性)》

语法

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ] 
  ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] ) 
  [ WITH ( storage_parameter = value [, ... ] ) ] 
  [ TABLESPACE tablespace_name ] 
  [ WHERE predicate ] 
索引挑选的要素

必要束缚

1、假如用户要创立 unique 索引,那么只能挑选btree索引接口。

2、某些类型指支撑某类索引接口,例如数组类型、全文检索类型,只支撑GIN索引。GIS类型只支撑gist或sp-gist索引。

挑选性

假如某个类型支撑多种索引接口,那么究竟挑选哪种接口比较好呢?

和数据的挑选性是有联系的。

1、挑选性差(例如1亿记载,有100-10万 条仅有值),主张运用gin或bitmap索引。

2、挑选性好(例如1亿记载,有8000万仅有值),主张运用btree或hash索引。

数据散布

1、关于数据值与行号出现较强的线性相关特性时,参加用户没有按该列次序输出的需求。则主张运用brin块级索引。

2、当列长度超越数据块的1/3时,不能运用btree,主张运用hash索引。或许运用表达式btree索引,建少索引entry的巨细。

查询需求

假如某个类型支撑多种索引接口,那么究竟挑选哪种接口比较好呢?

和数据的查询需求也是有联系的。

1、规模查询、排序查询、等值查询
阅览原文请点击;http://click.aliyun.com/m/23941/
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章