淺析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í)例圖如下:

注意:由于需要在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í)有一種變通的方式,可以將表使用的空間和主鍵索引使用的空間分離開(kāi),需要在方法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);
到此這篇關(guān)于GBase8s 唯一索引與非唯一索引的文章就介紹到這了,更多相關(guān)GBase8s 索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
復(fù)制數(shù)據(jù)庫(kù)表中兩個(gè)字段數(shù)據(jù)的SQL語(yǔ)句
今天為表新添加一個(gè)字段,但又想與表中的另一個(gè)字段值相同,由于數(shù)據(jù)過(guò)多想通過(guò)sql語(yǔ)句實(shí)現(xiàn),經(jīng)測(cè)試下面的這句話確實(shí)很好用2013-07-07
ORACLE 系統(tǒng)函數(shù)大全SQLSERVER系統(tǒng)函數(shù)的異同
下面是Oracle支持的字符函數(shù)和它們的Microsoft SQL Server等價(jià)函數(shù)。2009-07-07
關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)中主鍵問(wèn)題的思考
數(shù)據(jù)庫(kù)主鍵在數(shù)據(jù)庫(kù)中占有重要地位。主鍵的選取策略決定了系統(tǒng)是否可靠、易用、高效。本文探討了數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程當(dāng)中常見(jiàn)的主鍵選取策略,并剖析了其做主鍵的優(yōu)缺點(diǎn),提出了相應(yīng)的解決問(wèn)題的方法2013-08-08
最新DataGrip2020.2.x破解版激活碼的步驟詳解(支持Mac/Windows/Linux)
這篇文章主要介紹了最新DataGrip2020.2.x破解版激活碼教程詳解(支持Mac/Windows/Linux),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
SQL中NTEXT字段內(nèi)容顯示<long text>的原因
SQL中NTEXT字段內(nèi)容顯示<long text>的原因...2007-03-03
問(wèn)個(gè)高難度的復(fù)雜查詢(在一個(gè)時(shí)間段內(nèi)的間隔查詢)
問(wèn)個(gè)高難度的復(fù)雜查詢(在一個(gè)時(shí)間段內(nèi)的間隔查詢)...2007-04-04

