达梦数据库知识点
测试数据
-- SYSDBA.TABLE_CLASS_TEST definitionCREATE TABLE SYSDBA.TABLE_CLASS_TEST (ID VARCHAR(100) NOT NULL,NAME VARCHAR(100) NULL,CODE VARCHAR(100) NULL,TITLE VARCHAR(100) NULL,CREATETIME TIMESTAMP NULL,COLUMN1 VARCHAR(100) NULL,COLUMN2 INTEGER NULL,COLUMN3 VARCHAR(100) NULL,COLUMN4 VARCHAR(300) NULL,COLUMN5 VARCHAR(400) NULL,COLUMN6 VARCHAR(100) NULL,COLUMN7 VARCHAR(10) NULL,CONSTRAINT TAVBLE_CLASS_TEST_PK PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX INDEX33557764 ON SYSDBA.TABLE_CLASS_TEST (ID);
CREATE INDEX TABLE_CLASS_TEST_INDEX1 ON SYSDBA.TABLE_CLASS_TEST (CREATETIME DESC,CODE DESC);
CREATE INDEX TAVBLE_CLASS_TEST_CODE_IDX ON SYSDBA.TABLE_CLASS_TEST (CODE);
表空间
- 表空间:表空间就如同创建了一个文件夹。创建一个单独的文件夹给你来专门放
DM
资料,这样在查找时就可以只搜索这个文件夹,而不是整个硬盘搜索,从而提高效率。 - 达梦数据库默认使用
SYSDBA
用户和默认表空间进行数据库操作。
表空间获取
select tablespace_name from dba_tablespaces;
* SYSTEM-系统表空间,存放数据字典信息
* ROLL-回滚表空间,存放的回滚数据,MVCC(事务多版本)
* TEMP-临时表空间,存放临时数据
* MAIN-main表空间,如果用户创建数据对象不指定存储位置,默认存放到main
* HMAIN-hmain表空间,存放huge table信息
创建删除
--创建表空间
CREATE TABLESPACE TEST DATAFILE 'TEST.DBF' SIZE 300;
--删除表空间
DROP TABLESPACE TEST;
索引
全局索引
-
全局索引是以整张表的数据为对象而建立的索引。
-
指定
GLOBAL
关键字创建的索引即为全局索引。创建全局索引时,会在水平分区表的主表上创建全局索引和在每个子表上创建全局本地索引。索引数据存储在全局索引上。全局本地索引的命名规则为:INDEX
+ 全局本地索引ID_全局索引 ID
。例如:全局索引IDX1
的ID
为3504
,全局本地索引的ID
为3506
,那么全局本地索引的名称为INDEX3506_3504
。 -
全局索引具体分为两种:全局非分区索引和全局分区索引。指定了
<PARTITION 子句 >
的索引即为分区索引。只有达梦分布计算集群(DMDPC
)功能支持分区索引。 -
全局非分区索引可用于除
DMDPC
以外的任何环境中。
CREATE INDEX "TABLE_CLASS_TEST_INDEX1" ON "SYSDBA"."TABLE_CLASS_TEST" ("CREATETIME" DESC,"CODE" DESC)
GLOBAL STORAGE(ON "MAIN",CLUSTERBTR);
局部索引
● 局部索引:局部索引是在分区表的每个分区上创建的索引。
-
未指定
GLOBAL
关键字创建的索引即为局部索引。局部索引暂时不支持分区。创建局部索引时,会在水平分区表的主表上创建局部索引和在每个子表上创建子表局部索引。索引数据存储在子表局部索引上。 -
子表局部索引的命名规则为:
INDEX
+ 子表局部索引ID_
局部索引ID
。例如:局部索引IDX1
的ID
为3504
,子表局部索引的ID
为3506
,那么子表局部索引的名称为INDEX3506_3504
。
CREATE INDEX TAVBLE_CLASS_TEST_CODE_IDX ON SYSDBA.TABLE_CLASS_TEST (CODE);