甲骨文认证体系
Vmware认证体系
AWS亚马逊
阿里云认证体系
红帽认证体系
ZStack云计算认证体系
思科认证体系
华为认证体系
CDA数据分析师认证
达梦认证体系
麒麟
定制化课程
达梦数据库培训干货分享列存表在达梦数据库中的使用
发布日期:2020-09-08 10:37:27阅读次数:

在达梦数据库中,表的类型有很多种。传统的普通表,堆表,他们都是以行的方式来进行存储的,行存储是以记录为单位进行存储的,数据页面中存储的是完整的若干条记录。然而随着大数据的发展,有大量以查询为主的分析型需求诞生。因此达梦引入了HUGE表的概念。在HUGE表中,数据是以列为单位进行存储的,每一个列的所有行数据都存储在一起。 这样便可以加快某一个列的数据查询速度,同时因为列数据的类型一致,可以获得更大的压缩效率。本文就将带大家认识和了解HUGE表。


本文演示环境: DM Database Server x64 V7.1.6.48-Build(2018.03.01-89507)ENT

01

规划HTS表空间

HUGE表在数据库中的存储,并不是在普通的表空间和数据文件上,而是会存放在专门的HTS表空间中。创建一个 HTS,其实就是创建一个空的文件目录。目录中的表,会以模式-表-列层层目录的方式来存放。示意图如下:

默认情况下,HUGE表会存放在数据库自带的HMAIN表空间中。我们也可以手动规划一个HTS表空间名叫HTEST,具体语句如下:



注意这里和普通表空间的区别,普通表空间在规划时要指定数据文件的路径,而HTS表空间则是指定一个目录。规划好数据库会帮我们创建此目录,但是因为还未插入数据库,目录当前为空。


02

创建HUGE表

有了HTS表空间,我们可以尝试在HTEST中规划一个HUGE表,相关语句如下:



语句和一般的建表语句类似,同样,我们也可以用普通的 SQL来对表数据进行操作。


在创建表并插入数据之后,我们就可以在文件系统内查询到表的存储结构


从这里我们可以看到,完整结构由三级目录构成:表空间的HTEST目录,对应模式的SCH150994945模式和对应表的TAB1279目录。在表目录下,每一列的数据会存放到单独的dta文件中。


03

HUGE表使用说明

HUGE表与普通行表一样,可以进行增、删、改操作,操作方式也是一样的。但HUGE表的删除与更新操作的效率会比行表低一些,并发操作性能也会比行表差一些。这一点我们可以从结构里面看到出,假如我们要在数据库中插入一行数据库,会对每一个列对应的dta文件都进行修改,因此在HUGE中不宜做频繁的删除及更新操作。总之,HUGE表比较适合做分析型表的存储。


上海腾科教育科技有限公司聚焦ICT人才培养和教育服务、培养数字化时代的新型ICT人才、促进良性的ICT人才生态发展,提供面授教育、在线教育、IT人才培养与就业、高校专业共建与实验室建设、企业人才定制培养,以及教育科技领域内的技术开发、咨询、服务以及解决方案,专注高校ICT课程课件研发、基于华为公有云的云实验实训平台建设,致力于ICT技术在高等院校的引进、开发和推广,是一家全国性的专业ICT行业技术认证服务公司。

腾科教育是华为授权的培训合作伙伴,专业提供华为ICT技术架构认证、平台与服务认证、行业服务认证等华为职业认证服务,连续多年荣获华为年度最佳合作伙伴贡献奖、华为优秀战略合作伙伴、上海HCIE精英俱乐部伙伴,连续多年举办腾科技术嘉年华华为专场,并协办华为ICT大赛、华为生态伙伴精英赛伙伴赛分赛场、华为人才双选会上海场等活动和赛事,提供面向华为生态合作伙伴和ICT学员的人才供需双选平台及ICT学员就业通道,培养ICT行业所需创新型、融合型人才。