溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

GBase8s中唯一索引與非唯一索引問(wèn)題的示例分析

發(fā)布時(shí)間:2022-02-19 13:39:16 來(lái)源:億速云 閱讀:178 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“GBase8s中唯一索引與非唯一索引問(wèn)題的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“GBase8s中唯一索引與非唯一索引問(wèn)題的示例分析”這篇文章吧。

唯一索引在列中不允許重復(fù)的值出現(xiàn),可以用來(lái)定義和約束表中的一列或者多列組合值,在執(zhí)行insert和update語(yǔ)句時(shí)需要檢查唯一性。GBase8s中主鍵(PRIMARY KEY)會(huì)自動(dòng)創(chuàng)建一個(gè)唯一索引。一個(gè)良好的表設(shè)計(jì)都應(yīng)該定義主鍵或者唯一約束索引。特別是在OLTP系統(tǒng)中,唯一索引可以幫助快速定位少量記錄。

唯一索引的創(chuàng)建語(yǔ)法:

CREATE UNIQUE INDEX idx_name ON tabname(col);

或者

CREATE DISTINCT INDEX idx_name ON tabname(col);

非唯一索引(可重復(fù)索引)可以在非主鍵列中創(chuàng)建,允許在列中出現(xiàn)重復(fù)的數(shù)據(jù)。但需要避免子鍵過(guò)于重復(fù)的數(shù)據(jù)列上創(chuàng)建索引,因?yàn)橹貜?fù)值越多的索引,其效率越低。

唯一索引與非唯一索引的實(shí)例圖如下:

GBase8s中唯一索引與非唯一索引問(wèn)題的示例分析

注意:由于需要在insert、update時(shí)進(jìn)行唯一性判斷,所以不建議在一個(gè)表上創(chuàng)建多個(gè)唯一索引。為了確保唯一性要求,一般在一張表中創(chuàng)建唯一索引就足夠了。

補(bǔ)充:GBase 8s數(shù)據(jù)庫(kù)表和主鍵索引使用的空間分離方法

GBase 8s數(shù)據(jù)庫(kù)創(chuàng)建主鍵時(shí)一般情況下有兩種方法:

1,創(chuàng)建表時(shí)指定主鍵,如:

create table tab1
(
  id int,
  name varchar(255),
  primary key(id)
) in datadbs01;

2,使用alter語(yǔ)句修改表結(jié)構(gòu)的方式創(chuàng)建主鍵

create table tab1
(
  id int,
  name varchar(255)
) in datadbs01;
alter table tab1 add constraint primary key(id);

這兩種方法都無(wú)法為主鍵自動(dòng)創(chuàng)建的索引指定單獨(dú)的空間。

其實(shí)有一種變通的方式,可以將表使用的空間和主鍵索引使用的空間分離開,需要在方法2前加上創(chuàng)建唯一索引(即:不讓alter table add primary key自動(dòng)創(chuàng)建索引,而是使用剛創(chuàng)建的唯一索引),具體如下:

-- 創(chuàng)建表,使用datadbs01空間
create table tab1
(
  id int,
  name varchar(255)
) in datadbs01;
-- 創(chuàng)建唯一索引,使用indexdbs01空間
create unique index ix_tab1_id on tab1(id) in indexdbs01;
-- 修改表,創(chuàng)建主鍵(關(guān)聯(lián)唯一索引)
alter table tab1 add constraint primary key(id);

以上是“GBase8s中唯一索引與非唯一索引問(wèn)題的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI