上海腾科教育达梦数据库培训干货分享列存表在达梦数据库中的使用

在达梦数据库中,表的类型有很多种。传统的普通表,堆表,他们都是以行的方式来进行存储的,行存储是以记录为单位进行存储的,数据页面中存储的是完整的若干条记录。然而随着大数据的发展,有大量以查询为主的分析型需求诞生。因此达梦引入了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表比较适合做分析型表的存储。

猜你喜欢

转载自blog.csdn.net/qq_42726883/article/details/108463815