暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s创建索引及唯一索引介绍

原创 一直在路上 2022-03-01
1775

一、创建索引

Index-Type Options:Distinct/Unique和Cluster

其中,USING Access-Method Clause支持btree、rtree及bts(文本搜索)。

可以通过Extent Size Options对索引设置是extent size和next size大小。

Storge Options用来指定索引存储的相关位置,指定存储的dbspace信息,也可以对索引进行分片。

除了使用Create Index语句显式地创建索引,我们也可以创建隐式索引。隐式索引是创建约束(primary key、foreign key、unique constraint)时产生的,它不能利用现有的索引。对于隐式索引,我们不能指定dbspace的位置、分片策略和填充因子,它总是创建在数据库所在的dbspace上。

如下是使用主键约束创建隐式索引的示例:

create table t1(c1 int,c2 int,c3 int,primary key(c1))in datadbs1;

在建表时,可以先显式地创建满足参考约束条件的索引,然后使用alter table语句添加约束。这样,约束将利用现有的索引,而不是重新创建索引。

二、唯一索引

唯一索引在列中不允许重复的值出现,可以用来定义和约束表中的一列或者多列组合值,在执行insert和update语句时需要检查唯一性。一个良好的表设计都应该定义主键或者唯一约束索引。特别是OLTP系统中,唯一索引可以帮助快速定位少量数据。

非唯一索引(可重复索引)可以在非主键列中创建,允许在列中出现重复的数据。但是应避免在过于重复的数据列上创建索引,因为重复值越多的索引,其效率越低。

唯一索引的创建语法:

create unique index idx_name on tabname(co1);

create distinct index idx_name on tabname(co1);

一般一个表创建一个唯一索引就足够。由于需要在insert、update时进行唯一性判断,不建议一个表创建多个唯一索引。

填充因子

DBA在创建索引时可以指定每个索引页或节点中的填充百分比,这叫做填充因子(Fill Factor)。在索引的生命周期中,并不会维护该填充因子,它只会在索引创建时有效。

onconfig中的参数FILLFACTOR用于设置默认值,如果没有制定FILLFACTOR,则默认为90。

最后修改时间:2022-03-02 09:40:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论