(1)唯一索引:字面上理解就是在索引上增加唯一约束,不允许出现索引值相同的行,目前只有B-tree索引可以声明唯一索引,唯一键会自动创建唯一索引。
(2)主键索引:如果一个表上定义了一个主键,那么GBase 8c会自动在主键属性上创建唯一索引来实现主键约束。可以说,主键索引是唯一索引的特殊类型。
(3)多属性索引:如果一个索引定义在多余一个的属性上,就称其为多属性索引,它多用于组合查询。目前GBase 8c中的B-Tree、GiST和GIN支持多属性索引,最多可在32个属性上创建索引。
(4)部分索引:建立在一个表的子集上的索引,该子集由一个条件表达式定义(表达式即部分索引的谓词),该索引只包含表中那些满足这个谓词的元组。
(5)表达式索引:索引并非一定要建立在一个表的属性上,还可以建立在一个函数或者从表中一个或多个属性计算出来的标量表达式上。
GBase 8c提供了多种索引类型: B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN。每一种索引类型使用不同的算法来适应不同类型的查询。默认情况下,CREATE INDEX命令创建适合于大部分情况的B-tree 索引。(1)B-tree索引使用一种类似与B+树的结构来存储数据的键值,通过这种结构能够快速地查找索引。
(2)Hash索引只能处理简单等值比较。不论何时当一个索引列涉及到一个使用了= *** 作符的比较时,查询规划器将考虑使用一个Hash索引。
(3)GiST索引并不是一种单独的索引,而是可以用于实现很多不同索引策略的基础设施。相应地,可以使用一个GiST索引的特定 *** 作符根据索引策略( *** 作符类)而变化。
(4)SP-GiST索引为支持多种搜索提供了一种基础结构。SP-GiST 允许实现众多不同的非平衡的基于磁盘的数据结构,例如四叉树、k-d树和radix树。
(5)GIN 索引是“倒排索引”,它适合于包含多个组成值的数据值,例如数组。倒排索引中为每一个组成值都包含一个单独的项,它可以高效地处理测试指定组成值是否存在的查询。与 GiST 和 SP-GiST相似, GIN 可以支持多种不同的用户定义的索引策略,并且可以与一个 GIN 索引配合使用的特定 *** 作符取决于索引策略。
(6)BRIN 索引(块范围索引的缩写)存储有关存放在一个表的连续物理块范围上的值摘要信息。与 GiST、SP-GiST 和 GIN 相似,BRIN 可以支持很多种不同的索引策略,并且可以与一个 BRIN 索引配合使用的特定 *** 作符取决于索引策略。
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时
show index from 表名
desc 表名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)