培訓(xùn)PPT資料:輕松上手openGauss第4期-對象管理(上)_第1頁
培訓(xùn)PPT資料:輕松上手openGauss第4期-對象管理(上)_第2頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

輕松上手openGauss第四期

openGauss對象管理(上)openGauss資料團(tuán)隊(duì)賈軍鋒2020.12.07openGauss目錄CONTENTSopenGauss邏輯結(jié)構(gòu)簡介openGauss模式和用戶管理01openGauss表空間和數(shù)據(jù)庫管理openGauss數(shù)據(jù)類型介紹openGauss02030405openGauss普通表管理PART

1openGauss邏輯結(jié)構(gòu)openGaussopenGauss是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),即就是說,它是一種用于管理存儲(chǔ)在關(guān)系中的數(shù)據(jù)的系統(tǒng)(關(guān)系實(shí)際上是表的數(shù)學(xué)術(shù)語);表由多個(gè)行與列組成,被分組存儲(chǔ)成為了數(shù)據(jù)庫;一個(gè)由單個(gè)openGauss服務(wù)器實(shí)例管理的數(shù)據(jù)庫集合組成一個(gè)數(shù)據(jù)庫集簇(DatabaseCluster);一個(gè)數(shù)據(jù)庫集簇由多個(gè)用戶(Users)和多個(gè)數(shù)據(jù)庫(Databases)組成,這些數(shù)據(jù)庫和用戶共用同一套數(shù)據(jù)庫實(shí)例以及相關(guān)配置文件。openGaussopenGauss邏輯結(jié)構(gòu)PART

2openGauss模式和用戶管理openGaussopenGauss使用模式對數(shù)據(jù)庫做邏輯分割。

模式(Schema)在功能上類似于操作系統(tǒng)的目錄,但這些“目錄”卻不能嵌套。模式和數(shù)據(jù)庫的特性不同、它不是嚴(yán)格分離的,所有的數(shù)據(jù)庫對象都建立在模式下面,用戶可以根據(jù)自己擁有的權(quán)限,訪問數(shù)據(jù)庫中一個(gè)或多個(gè)schema的對象。這樣就使得多個(gè)用戶可以使用同一個(gè)數(shù)據(jù)庫而不相互干擾。openGauss的模式和用戶是弱綁定的,所謂的弱綁定是指雖然創(chuàng)建用戶的同時(shí)會(huì)自動(dòng)創(chuàng)建一個(gè)同名模式,但用戶也可以單獨(dú)創(chuàng)建模式,并且為用戶指定其他的模式。

在數(shù)據(jù)庫創(chuàng)建用戶時(shí),系統(tǒng)會(huì)自動(dòng)幫助用戶在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個(gè)同名的Schema。數(shù)據(jù)庫對象默認(rèn)創(chuàng)建在數(shù)據(jù)庫搜索路徑(search_path)中的第一個(gè)Schema內(nèi)。數(shù)據(jù)庫默認(rèn)具有一個(gè)名為public的Schema,且默認(rèn)所有用戶的搜索路徑都包含該Schema。openGauss模式(Schema)概述搜索路徑:postgres=#showsearch_path;search_path"$user",public(1row)openGauss模式(Schema)管理Tips:不建議創(chuàng)建以PG_為前綴的schema名,該類的schema是為數(shù)據(jù)庫系統(tǒng)預(yù)留的。在每次創(chuàng)建新用戶時(shí),系統(tǒng)會(huì)在當(dāng)前登錄的數(shù)據(jù)庫中為新用戶創(chuàng)建一個(gè)同名Schema。對于其他數(shù)據(jù)庫,若需要同名Schema,則需要用戶手動(dòng)創(chuàng)建。每個(gè)數(shù)據(jù)庫都有pg_catalogschema,它包含系統(tǒng)表和所有內(nèi)置數(shù)據(jù)類型、函數(shù)、操作符。搜索路徑(search_path)始終以pg_temp和pg_catalog這兩個(gè)schema作為搜索路徑順序中的前兩位。創(chuàng)建schemacreateschemasch1;createschemasch2authorizationjack;修改schemaalterschemasch2renametosch3;alterschemasch1ownertojack;刪除schemadropschemasch3;用戶:即使用和管理數(shù)據(jù)庫資源的人角色:將一組具有相同權(quán)限的用戶組織在一起,這一組具有相同權(quán)限的用戶就稱為角色(Role)openGauss使用用戶和角色來控制對數(shù)據(jù)庫的訪問。根據(jù)角色自身的設(shè)置不同,一個(gè)角色可以看做是一個(gè)數(shù)據(jù)庫用戶或者一組數(shù)據(jù)庫用戶。在openGauss中角色和用戶之間的區(qū)別只在于角色默認(rèn)是沒有LOGIN權(quán)限的。系統(tǒng)權(quán)限:又稱為用戶屬性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN對象權(quán)限:數(shù)據(jù)庫對象(表和視圖、指定字段、數(shù)據(jù)庫、函數(shù)、模式、表空間等)的相關(guān)權(quán)限(創(chuàng)建、刪除、修改等)openGauss用戶角色及權(quán)限概述openGauss管理員用戶初始用戶openGauss安裝過程中自動(dòng)生成的帳戶稱為初始用戶。初始用戶擁有系統(tǒng)的最高權(quán)限,能夠執(zhí)行所有的操作。該帳戶與進(jìn)行openGauss安裝的操作系統(tǒng)用戶同名,安裝時(shí)需要手動(dòng)設(shè)置密碼。在第一次登錄數(shù)據(jù)庫后,要及時(shí)修改初始用戶的密碼。初始用戶會(huì)繞過所有權(quán)限檢查。建議僅將此初始用戶作為DBA管理用途,而非業(yè)務(wù)應(yīng)用。系統(tǒng)管理員系統(tǒng)管理員是指具有SYSADMIN屬性的帳戶,默認(rèn)安裝情況下具有與對象所有者相同的權(quán)限,但不包括dbe_perf模式的對象權(quán)限。創(chuàng)建系統(tǒng)管理員可以使用初始用戶或者系統(tǒng)管理員用戶身份連接數(shù)據(jù)庫,并使用帶SYSADMIN選項(xiàng)的CREATEUSER語句或ALTERUSER語句進(jìn)行設(shè)置。openGauss三權(quán)分立

默認(rèn)情況下數(shù)據(jù)庫系統(tǒng)管理員具備數(shù)據(jù)庫最高權(quán)限,但在實(shí)際業(yè)務(wù)管理中,為了避免系統(tǒng)管理員擁有過度集中的權(quán)利帶來高風(fēng)險(xiǎn),可以設(shè)置三權(quán)分立。將系統(tǒng)管理員的部分權(quán)限分立給安全管理員和審計(jì)管理員,形成系統(tǒng)管理員、安全管理員和審計(jì)管理員三權(quán)分立。三權(quán)分立后,系統(tǒng)管理員將不再具有CREATEROLE屬性(安全管理員)和AUDITADMIN屬性(審計(jì)管理員)能力。即不再擁有角色或用戶的管理權(quán)限、數(shù)據(jù)庫審計(jì)日志的管理權(quán)限。Tips:初始用戶的權(quán)限不受三權(quán)分立設(shè)置影響三權(quán)分立的設(shè)置參數(shù)enableSeparationOfDuty三權(quán)分立openGauss私有用戶三權(quán)分立情況下,管理員對其他用戶放在屬于各自模式下的表無權(quán)限。但是,這種無權(quán)限包含了無控制權(quán)限,因此不能滿足上面的訴求。為此,openGauss提供了私有用戶方案。即在非三權(quán)分立模式下,創(chuàng)建具有INDEPENDENT屬性的私有用戶。針對該用戶的對象,系統(tǒng)管理員(包括初始用戶)和擁有CREATEROLE屬性的安全管理員在未經(jīng)其授權(quán)前,只能進(jìn)行控制操作(DROP、ALTER、TRUNCATE),無權(quán)進(jìn)行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTEROWNER操作。openGauss用戶管理示例創(chuàng)建用戶createuseruser1identifiedby'gauss@123';createuseruser2

withsysadminpassword'gauss@123';createuseruser3withVALIDBEGIN'2020-12-31

23:59:59'VALIDUNTIL'2020-12-01

00:00:00'identifiedby'gauss@123'CONNECTIONLIMIT100;修改用戶alteruseruser1withsysadmin;alteruseruser2renametouser4;創(chuàng)建私有用戶createuseruser_independwithindependentidentifiedby'gauss@123';grantallprivilegesondatabasemydbtouser_independ;開啟三權(quán)分立$gs_gucreload-Nall-Iall-c"enableseparationofduty=on"$gs_om-tstop&&gs_om-tstart刪除用戶dropuseruser4;openGauss用戶授權(quán)場景openGauss默認(rèn)權(quán)限機(jī)制

openGauss安裝后的默認(rèn)情況下,未開啟三權(quán)分立,數(shù)據(jù)庫系統(tǒng)管理員具有與對象所有者相同的權(quán)限。也就是說對象創(chuàng)建后,默認(rèn)只有對象所有者或者系統(tǒng)管理員可以查詢、修改和銷毀對象,以及通過GRANT將對象的權(quán)限授予其他用戶。openGauss支持以下的權(quán)限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、CONNECT、EXECUTE和USAGE,不同的權(quán)限與不同的對象類型關(guān)聯(lián)。要撤消已經(jīng)授予的權(quán)限,可以使用REVOKE。對象所有者的權(quán)限(例如ALTER、DROP、GRANT和REVOKE)是隱式的,無法授予或撤消。即只要擁有對象就可以執(zhí)行對象所有者的這些隱式權(quán)限,但對象所有者可以撤消自己的普通權(quán)限,例如:使表對自己以及其他人只讀,系統(tǒng)管理員用戶除外。數(shù)據(jù)庫提供對象隔離的特性,對象隔離特性開啟時(shí)(ALTERDATABASEdatabase_nameENABLEPRIVATEOBJECT;),新登錄的用戶只能查看有權(quán)限訪問的對象(表、視圖、字段、函數(shù)),系統(tǒng)管理員不受影響。openGauss授權(quán)示例數(shù)據(jù)庫授權(quán)示例:grantallprivilegesondatabasemydbtouser3;表空間授權(quán)示例:grantallprivilegesontablespacetbs1touser3;schema授權(quán)示例:grantusageonschemasch1touser3;函數(shù)授權(quán)示例:grantexecuteonfunctionfunc_add_sql(int,int)touser3;grantexecuteonfunctionproc_emp(var_empnoint,OUTv_namevarchar,OUTv_jobvarchar)touser3;表授權(quán)示例:grantselect(empno,ename,sal),update(comm)onempTOuser3;grantselect,insert,update,deleteonalltablesinschemasch1touser3;grantallprivilegesonemptouser3withgrantoption;授權(quán)jack角色給user1用戶,且user1用戶可授權(quán)其他用戶,示例:grantjacktouser1withadminoption;權(quán)限回收示例:revokejackfromuser1;PART

3openGauss表空間和數(shù)據(jù)庫管理openGaussopenGauss表空間管理概述openGauss的表空間在操作系統(tǒng)中是一個(gè)目錄,可以存在多個(gè),里面存儲(chǔ)的是它所包含的數(shù)據(jù)庫的各種物理文件。由于表空間實(shí)際上是一個(gè)目錄,所以其管理功能依賴于文件系統(tǒng)。

使用表空間有以下優(yōu)點(diǎn):如果數(shù)據(jù)庫所在的分區(qū)或者卷空間已滿,又不能邏輯上擴(kuò)展更多空間,可以在不同的分區(qū)上創(chuàng)建和使用表空間,直到系統(tǒng)重新配置空間。表空間允許管理員根據(jù)數(shù)據(jù)庫對象的使用模式安排數(shù)據(jù)位置,從而提高性能。?一個(gè)頻繁使用的索引可以放在性能穩(wěn)定且運(yùn)算速度較快的磁盤上,比如一種固態(tài)設(shè)備。?一個(gè)存儲(chǔ)歸檔的數(shù)據(jù),很少使用的或者對性能要求不高的表可以存儲(chǔ)在一個(gè)運(yùn)算速度較慢的磁盤上。管理員通過表空間可以設(shè)置占用的磁盤空間,用以在和其他數(shù)據(jù)共用分區(qū)的時(shí)候,防止表空間占用相同分區(qū)上的其他空間。但使用表空間配額管理會(huì)使性能有30%左右的影響,MAXSIZE指定每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)的配額大小,誤差范圍在500MB以內(nèi)。表空間可以控制數(shù)據(jù)庫數(shù)據(jù)占用的磁盤空間,當(dāng)表空間所在磁盤的使用率達(dá)到90%時(shí),數(shù)據(jù)庫將被設(shè)置為只讀模式,當(dāng)磁盤使用率降到90%以下時(shí),數(shù)據(jù)庫將恢復(fù)到讀寫模式。openGauss自帶了兩個(gè)表空間:pg_default,pg_global表空間pg_default:用來存儲(chǔ)系統(tǒng)目錄對象、用戶表、用戶表index、和臨時(shí)表、臨時(shí)表index、內(nèi)部臨時(shí)表的默認(rèn)空間。對應(yīng)存儲(chǔ)目錄$GAUSS_DATA_HOME/base/表空間pg_global:用來存放系統(tǒng)字典表;對應(yīng)存儲(chǔ)目錄$GAUSS_DATA_HOME/global/openGauss表空間管理示例創(chuàng)建表空間:createtablespacetbs2relativelocation'tablespace/tbs2'maxsize'100G';createtablespacetbs3ownerjacklocation'/gauss/data/tbs3';查詢表空間信息:\dbselect*frompg_tablespace_location((selectoidfrompg_tablespacewherespcname='tbs2'));selectoid,*frompg_tablespace;修改表空間:altertablespacetbs3renametotbs4;altertablespacetbs4ownertojack;altertablespacetbs4resizemaxsizeunlimited;altertablespacetbs4reset(random_page_cost);刪除表空間:droptablespacetbs4;Tips:刪除表空間的前提條件是該表空間內(nèi)容為空。openGauss數(shù)據(jù)庫管理概述前提條件:用戶必須擁有數(shù)據(jù)庫創(chuàng)建的權(quán)限(createdb)或者是數(shù)據(jù)庫的系統(tǒng)管理員權(quán)限才能創(chuàng)建數(shù)據(jù)庫。背景信息:?初始時(shí),openGauss包含兩個(gè)模板數(shù)據(jù)庫template0、template1,以及一個(gè)默認(rèn)的用戶數(shù)據(jù)庫postgres。postgres默認(rèn)的兼容數(shù)據(jù)庫類型為A,該兼容類型下將空字符串作為NULL處理。?CREATEDATABASE實(shí)際上通過拷貝模板數(shù)據(jù)庫來創(chuàng)建新數(shù)據(jù)庫。默認(rèn)情況下,拷貝template0。?openGauss允許創(chuàng)建的數(shù)據(jù)庫總數(shù)目上限為128個(gè)。?數(shù)據(jù)庫系統(tǒng)中會(huì)有多個(gè)數(shù)據(jù)庫,但是客戶端程序一次只能連接一個(gè)數(shù)據(jù)庫。也不能在不同的數(shù)據(jù)庫之間相互查詢。一個(gè)openGauss中存在多個(gè)數(shù)據(jù)庫時(shí),需要通過-d參數(shù)指定相應(yīng)的數(shù)據(jù)庫實(shí)例進(jìn)行連接。注意事項(xiàng):如果數(shù)據(jù)庫的編碼為SQL_ASCII,則在創(chuàng)建數(shù)據(jù)庫對象時(shí),如果對象名中含有多字節(jié)字符(例如中文),超過數(shù)據(jù)庫對象名長度限制(63字節(jié))的時(shí)候,數(shù)據(jù)庫將會(huì)將最后一個(gè)字節(jié)截?cái)?,可能造成出現(xiàn)半個(gè)字符的情況。針對這種情況,請遵循以下條件:?保證數(shù)據(jù)對象的名稱不超過限定長度。?修改數(shù)據(jù)庫的默認(rèn)存儲(chǔ)編碼集(server_encoding)為utf-8編碼集。?不要使用多字節(jié)字符做為對象名。?創(chuàng)建的數(shù)據(jù)庫總數(shù)目不得超過128個(gè)。?如果出現(xiàn)因?yàn)檎`操作導(dǎo)致在多字節(jié)字符的中間截?cái)喽鵁o法刪除數(shù)據(jù)庫對象的現(xiàn)象,請使用截?cái)嗲暗臄?shù)據(jù)庫對象名進(jìn)行刪除操作,或?qū)⒃搶ο髲母鱾€(gè)數(shù)據(jù)庫節(jié)點(diǎn)的相應(yīng)系統(tǒng)表中依次刪掉。openGauss數(shù)據(jù)庫管理示例創(chuàng)建數(shù)據(jù)庫:createdatabasemydb2;createdatabasemydb3withowner=jackencoding='UTF-8'LC_COLLATE='zh_CN.UTF-8'LC_CTYPE='zh_CN.UTF-8'DBCOMPATIBILITY='A'TABLESPACE=tbs1CONNECTIONLIMIT=1000;>指定了數(shù)據(jù)庫mydb的擁有者(owner),編碼(encoding),字符集(LC_COLLATE),字符分類(LC_CTYPE),兼容模式(DBCOMPATIBILITY),默認(rèn)表空間(TABLESPACE),并發(fā)連接限制(CONNECTIONLIMIT).?若區(qū)域設(shè)置為C(或POSIX),則允許所有的編碼類型,但是對于其他的區(qū)域設(shè)置,字符編碼必須和區(qū)域設(shè)置相同。修改數(shù)據(jù)庫屬性:alterdatabasemydb3renametomydb4;alterdatabasemydb2ownertouser1;alterdatabasemydb2settablespacetbs1;刪除數(shù)據(jù)庫:dropdatabasemydb4;查詢數(shù)據(jù)庫:\lselect*frompg_database;PART

4openGauss數(shù)據(jù)類型介紹openGaussopenGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型Tips:任意精度類型相比整數(shù)類型需要更大的存儲(chǔ)空間,其存儲(chǔ)效率、運(yùn)算效率以及壓縮比效果都要差一些。在進(jìn)行數(shù)值類型定義時(shí),優(yōu)先選擇整數(shù)類型。當(dāng)數(shù)值超出整數(shù)可表示最大范圍時(shí),再選用任意精度類型。使用Numeric/Decimal進(jìn)行列定義時(shí),建議指定該列的精度p以及標(biāo)度s。openGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型日期/時(shí)間輸出風(fēng)格日期順序習(xí)慣日期輸入樣例Tips:儒略日(JulianDay)是在儒略周期內(nèi)以連續(xù)的日數(shù)計(jì)算時(shí)間的計(jì)時(shí)法(自公元前4712年1月1日來的天數(shù)),主要是天文學(xué)家在使用。openGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型openGaussopenGauss數(shù)據(jù)類型PART

5openGauss普通表管理openGaussopenGauss創(chuàng)建表(一)規(guī)劃存儲(chǔ)模型:openGauss支持行列混合存儲(chǔ),建議根據(jù)實(shí)際情況選擇:通常openGauss用于OLTP場景的數(shù)據(jù)庫,默認(rèn)使用行存儲(chǔ),將表按行存儲(chǔ)到硬盤分區(qū)上針對執(zhí)行復(fù)雜查詢且數(shù)據(jù)量大的OLAP場景時(shí),推薦使用列存儲(chǔ),將表按列存儲(chǔ)到硬盤分區(qū)上。默認(rèn)情況下,創(chuàng)建的表為行存儲(chǔ)。列存表受限注意事項(xiàng):支持的數(shù)據(jù)類型有要求,請參考《列存表支持的數(shù)據(jù)類型》;不支持插入數(shù)組;表的數(shù)量建議不超過1000個(gè);表級(jí)約束只支持PARTIALCLUSTERKEY,不支持主外鍵等表級(jí)約束;字段約束只支持NULL、NOTNULL和DEFAULT常量值;支持delta表,參數(shù)enable_delta_store控制是否開啟,參數(shù)deltarow_threshold控制進(jìn)入delta表的閥值。openGauss創(chuàng)建表(二)示例二:CREATETABLEIFNOTEXISTSwarehouse_t1 --表不存在時(shí)才創(chuàng)建,使得當(dāng)該表存在時(shí)該建表語句不會(huì)報(bào)錯(cuò)(W_WAREHOUSE_SKINTEGERNOTNULL,W_WAREHOUSE_IDCHAR(16)NOTNULL,W_WAREHOUSE_NAMEVARCHAR(20)UNIQUEDEFERRABLE,--事務(wù)結(jié)束時(shí)檢查字段是否有重復(fù)W_STREET_NAMEVARCHAR(60)DICTIONARY,--壓縮算法DictionaryW_SUITE_NUMBERCHAR(10),W_STATECHAR(2)DEFAULT'GA',--缺省值為'GA'W_GMT_OFFSETDECIMAL(5,2))TABLESPACEtbs1;示例三:CREATEUNLOGGEDTABLEwarehouse_t2 --不寫入預(yù)寫日志(W_WAREHOUSE_SKINTEGERPRIMARYKEY,--主鍵約束W_WAREHOUSE_IDCHAR(16)NOTNULL,W_WAREHOUSE_NAMEVARCHAR(20)UNIQUE,--唯一鍵約束W_GMT_OFFSETDECIMAL(5,2),CONSTRAINTW_CONSTR_KEY2CHECK(W_WAREHOUSE_SK>0ANDW_WAREHOUSE_NAMEISNOTNULL)--檢查列約束)WITH(fillfactor=70);--表的填充因子70%示例一:createtableemp1asselect*fromempwheresal<2000;createtableemp2astableemp;openGauss創(chuàng)建表(三)示例四:CREATETEMPORARYTABLEwarehouse_t3 --創(chuàng)建臨時(shí)表(臨時(shí)表不能指定schema)(W_WAREHOUSE_SKINTEGERNOTNULL,W_WAREHOUSE_IDCHAR(16)NOTNULL,PRIMARYKEY(W_WAREHOUSE_SK)--主鍵約束)ONCOMMITDELETEROWS;--提交事務(wù)時(shí)刪除該臨時(shí)表數(shù)據(jù)示例五:postgres=#CREATETABLEwarehouse_t4CREATETABLEwarehouse_t4(W_WAREHOUSE_SKINTEGERNOTNULL,W_WAREHOUSE_IDCHAR(16)NOTNULL,W_WAREHOUSE_NAMEVARCHAR(20)UNIQUEUSINGINDEXTABLESPACEtbs1,--指定該列索引存儲(chǔ)的表空間CONSTRAINTW_CSTR_KEY1PRIMARYKEY(W_WAREHOUSE_SK,W_WAREHOUSE_ID)--復(fù)合主鍵約束W_CSTR_KEY1)COMPRESS;示例六:CREATETABLEwarehouse_t5(W_WAREHOUSE_SKINTEGERPRIMARYKEYCHECK(W_WAREHOUSE_SK>0),--檢查列約束W_WAREHOUSE_IDCHAR(16)NOTNULL,W_WAREHOUSE_NAMEVARCHAR(20)CHECK(W_WAREHOUSE_NAMEISNOTNULL),--檢查列約束W_GMT_OFFSETDECIMAL(5,2)REFERENCESDEPT(DEPTNO)--外鍵約束);openGauss創(chuàng)建表(四)示例七:CREATETABLEwarehouse_t6(W_WAREHOUSE_SKINTEGERNOTNULL,W_WAREHOUSE_IDCHAR(16)NOTNULL,W_WAREHOUSE_NAMEVARCHAR(20),W_GMT_OFFSETDECIMAL(5,2),PARTIALCLUSTERKEY(W_WAREHOUSE_SK,W_WAREHOUSE_ID) --局部聚簇存儲(chǔ))WITH(ORIENTATION=COLUMN,COMPRESSION=HIGH); --帶有壓縮特性的列存儲(chǔ)表(列存儲(chǔ)表不支持約束)示例八(MOT表):openGauss引入了MOT存儲(chǔ)引擎,完全支持ACID特性。企業(yè)可以在關(guān)鍵任務(wù)、性能敏感的在線事務(wù)處理(OLTP)中使用MOT,以實(shí)現(xiàn)高性能、高吞吐、可預(yù)測低延遲以及多核服務(wù)器的高利用率。前提條件>關(guān)閉增量檢查點(diǎn)[omm@db1~]$gs_gucset-Nall-Iall-c"enable_incremental_checkpoint=off"[omm@db1~]$gs_om-tstop&&gs_om-tstartgsql-dmydb-p26000-rshowenable_incremental_checkpoint;CREATEFOREIGNTABLEwarehouse_mot(EMPNOINTEGERPRIMARYKEY,JOBCHAR(16),SALDECIMAL(8,2),DEPTNOINTEGER)SERVERMOT_SERVER;--MOT表不支持ALTER操作CALC檢查點(diǎn)算法:內(nèi)存和計(jì)算開銷低?降低內(nèi)存使用量-每條記錄在任何時(shí)候最多存儲(chǔ)兩個(gè)副本。?低開銷:CALC的開銷比其他異步檢查點(diǎn)算法小。?使用虛擬一致性點(diǎn):CALC不需要靜默數(shù)據(jù)庫以實(shí)現(xiàn)物理一致性點(diǎn)。openGauss表管理操作注意事項(xiàng)

在對表進(jìn)行修改時(shí),可以修改表的定義、重命名表、重命名表中指定的列、重命名表的約束、設(shè)置表的所屬模式、添加/更新多個(gè)列、打開/關(guān)閉行訪問控制開關(guān)。注意事項(xiàng):?只有表的所有者有權(quán)限執(zhí)行ALTERTABLE命令,系統(tǒng)管理員默認(rèn)擁有此權(quán)限。?不能修改分區(qū)表的tablespace,但可以修改分區(qū)的tablespace。?不支持修改存儲(chǔ)參數(shù)ORIENTATION。?不支持增加自增列,或者增加DEFAULT值中包含nextval()表達(dá)式的列。?不支持對外表、臨時(shí)表開啟行訪問控制開關(guān)。?通過約束名刪除PRIMARYKEY約束時(shí),不會(huì)刪除NOTNULL約束,如果有需要,請手動(dòng)刪除NOTNULL約束。?使用JDBC時(shí),支持通過PrepareStatement對DEFAUTL值進(jìn)行參數(shù)化設(shè)置。?列存表只支持PARTIALCLUSTERKEY表級(jí)約束,不支持主外鍵等表級(jí)約束。?列存表支持的字段約束包括NULL、NOTNULL和DEFAULT常量值;對字段約束的修改當(dāng)前只支持對DEFAULT值的修改(SETDEFAULT)和刪除(DROPDEFAULT),暫不支持對非空約束NULL/NOTNULL的修改。注:其他詳細(xì)的注意事項(xiàng)請參考o(jì)penGauss官方文檔《開發(fā)者指南》。openGauss表管理示例修改表的屬性altertableemp1modifysalnumber(10,2); --修改列屬性altertableemp1renamecolumnenametoname; --重命名列altertableemp1addprimarykey(empno); --添加主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論