达梦HUGE表
僅為個人學習記錄
一、HUGE表空間
1、基礎
(1)是存儲HUGE表特有的表空間
(2)最多可創建 32767 個 HUGE 表空間
(3)HTS,HUGE? TableSpace
(4)相關信息存儲在動態視圖 V$HUGE_TABLESPACE,而非V$TABLESPACE
(5)與普通的表空間不同,并非通過段、簇、頁來管理,HUGE 表空間是通過 HFS 存儲機制來管理的
(6)創建一個 HTS,其實就是創建一個空的文件目錄
(7)系統默認的HTS,目錄名為 HMAIN
2、HFS目錄結構
?
3、存儲機制
在 HTS 目錄下成功創建 HUGE 表,系統內部需要經過以下步驟
(1)在 HTS 目錄下創建這個表對應的模式目錄
(2)在模式目錄下創建對應的表目錄。
(3)在新創建表后插入數據時,每一個列對應一個以dta為后綴的文件
(4)文件大小可以在建表時指定,默認為64M
(5)文件內部存儲是按照區來管理的,區是文件內部數據管理的最小單位,也是唯一的單位
(6)區中可以存儲單列數據的行數是在創建表時指定的,一經指定,在這個表的生命過程就不能再修改
二、HUGE概念
1、列存儲表
(1)表的數據存儲方式分為行存儲和列存儲
(2)HUGE表,也就是列存儲表
(3)行存儲是以記錄為單位進行存儲的,數據頁面中存儲的是完整的若干條記錄
(4)列存儲是以列為單位進行存儲的,每一個列的所有行數據都存儲在一起,而且一個指定的頁面中存儲的都是某一個列的連續數據。
2、列存儲和行存儲
(1)舉例有這樣一個表:
?
(2)上圖表,行存儲和列存儲的存儲方式為:
?
3、非事務型 HUGE 表
(1)對非事務型 HUGE 表的增、刪、改是直接對 HUGE 表進行寫操作的,不寫 UNDO 日志,不通過 BUFFER 緩存,直接操縱文件
(2)使用數據鏡像來保證完整性,鏡像的不同程度可以實現不同程度的完整性恢復。鏡像文件是放在表目錄中的以.mir為擴展名的文件
(3)HUGE_WITH_DELTA 的缺省值 1,不支持創建非事務性 HUG 表
4、AUX輔助表
(1)每個 HUGE 表,相應地配備一個 AUX 輔助表來管理其數據
(2)在創建HUGE 表時系統自動創建的,表名為 表名$AUX
(3)如果該 HUGE 表為分區表,則輔助表名為“子表名$AUX”
(4)每一條記錄對應文件中的一個數據區
(5)列:
| 1. | COLID | :表示當前這條記錄對應的區所在的列的列 ID 號; |
| 2. | SEC_ID | :表示當前這個記錄對應的區的區 ID 號,每一個區都有一個 ID 號,并且唯一; |
| 3. | FILE_ID | :表示這個區的數據所在的文件號; |
| 4. | OFFSET | :表示這個區的數據在文件中的偏移位置,4K 對齊; |
| 5. | COUNT | :表示這個區中存儲的數據總數(有可能包括被刪除的數據); |
| 6. | ACOUNT | :表示這個區中存儲的實際數據行數; |
| 7. | N_LEN | :表示這個區中存儲的數據在文件中的長度,4K 對齊的; |
| 8. | N_NULL | :表示這個區中的數據中包括的 NULL 值的行數; |
| 9. | N_DIST | :表示這個區中所有數據互不相同的行數; |
| 10. | CPR_FLAG | :表示這個區是否壓縮; |
| 11. | ENC_FLAG | :表示這個區是否加密; |
| 12. | CHKSUM | :用來存儲標記位; |
| 13. | MAX_VAL | :表示這個區中的最大值,精確值; |
| 14. | MIN_VAL | :表示這個區中的最小值,精確值; |
| 15. | SUM_VAL | :表示這個區中所有值的和,精確值。 |
5、事務型 HUGE 表
(1)事務型 HUGE 表,通過增加 RAUX、DAUX 和 UAUX 行輔助表,減少了事務型 HUGE 表增、刪、改操作的 IO,提高效率,同時提高并行性能。
(2)事務型 HUGE 表支持 UNDO 日志,實現了事務特性。
(3)RAUX 行輔助表
(4)DAUX 行輔助表
(5)UAUX 行輔助表
(6)創建事務型 HUGE 表時,指定 HUGE 表鏡像文件方案的選項 LOG NONE|LOG LAST|LOG ALL 失效。
三、HUGE表限制
1.建 HUGE 表時僅支持定義 NULL、NOT NULL、UNIQUE 約束以及 PRIMARY KEY,后兩種約束也可以通過 ALTER TABLE 的方式添加,但這兩種約束不檢查唯一性;
2.HUGE 不允許建立聚簇索引,允許建立二級索引,不支持建位圖索引,其中 UNIQUE索引不檢查唯一性;
3.不支持 SPACE LIMIT(空間限制);
4.不支持建立全文索引;
5.不支持使用自定義類型;
6.不支持引用約束;
7.不支持 IDENTITY 自增列;
8.不支持大字段列;
9.不支持建觸發器;
10.不支持游標的修改操作;
11.PK 和 UNIQUE 約束不檢查唯一性,對應的索引都為虛索引;UNIQUE 索引也不檢查唯一性,為實索引,索引標記中不包含唯一性標記,即和普通二級索引相同;
12.不允許對分區子表設置 SECTION 和 WITH/WITHOUT DELTA;
13.當事務型 HUGE 表進行了較多增刪改操作時,應對其進行數據重整操作,以提高性能。
四、創建HUGE表
1、創建非事務型 HUGE 表 T1。
CREATE HUGE TABLE T1 (A INT, B INT) STORAGE(WITHOUT DELTA);
2、創建事務型 HUGE 表 T2。
CREATE HUGE TABLE T2 (A INT, B INT) STORAGE(WITH DELTA);
3、指定區存儲的行數
CREATE HUGE TABLE T2 (A INT, B INT) STORAGE(SECTION (65535));
4、指定插入時不記錄區最大值最小值,默認記錄
(1)全表不記錄
CREATE HUGE TABLE test(name VARCHAR, sno INT) STORAGE (STAT NONE);
(2)單列不記錄
CREATE HUGE TABLE test(name VARCHAR STORAGE (STAT NONE), sno INT);
5、指定表空間
CREATE HUGE TABLE T2 (A INT, B INT) STORAGE(SECTION (65535), on MYHUGE);
6、指定文件大小,默認64M
CREATE HUGE TABLE T2 (A INT, B INT) STORAGE(SECTION (65535), on MYHUGE ,filesize(1024));
7、指定壓縮級別
(1)兩種壓縮算法,SNAPPY 和 ZIP
(2)取值范圍 0~10
0 等價于 LEVEL 2
1 等價于 LEVEL 9
2~9 采用 ZIP 算法壓縮,值越大表示壓縮比越高、壓縮速度越慢
10 采用 SNAPPY 算法輕量級方式壓縮
(3)舉例,壓縮某一列
CREATE HUGE TABLE test(name VARCHAR, sno INT) COMPRESS LEVEL 1 (sno);
8、測試唯一約束
(1)唯一約束對于HUGE表是無效的。
?
達夢數據庫 - 新一代大型通用關系型數據庫 | 達夢云適配中心達夢數據庫產品體驗站,DM8在線試玩,達夢數據庫全系列產品免費下載,官方權威的快速上手文檔和產品手冊,最活躍的達夢技術社區,面向全行業ISV廠商免費的云適配服務。https://eco.dameng.com/
總結
- 上一篇: 中国电信中兴F412光猫——IPTV与网
- 下一篇: dell 7559 2548B加装固态硬