正文部分

SAP HANA处理大量数据速度快的机制理解

1:HANA使用列存储的数据管理优化数据存取

从列去读取数据库表,其他忽略

2:对于内存和CPU之间的访问速度差异,增加内核,压缩数据

3:使用列存储技术高效利用CPU的缓存。

行存储数据的读取方式容易造成内存的数据读取及高速缓存的丢失

4:利用新型CPU预读取的技术夹克数据的读取

就是读取一个缓存数据的同时,预读另一个缓存数据。

HANA采用了行列混合的存储模式

即在单一数据库系统中,能支持两种不同的数据存储模式。

传统意义上数据库表是一个二维表,由行和列组成。

行存储方式包含一条记录中所有的数据

而列存储方式则包含这一列中所有数据。

如下图演示:

HanLP 获取句子的语义 hana语句读取数据库_HanLP 获取句子的语义

这样一个数据库表的话,

行存储如下:

HanLP 获取句子的语义 hana语句读取数据库_数据_02

列存储如下:

HanLP 获取句子的语义 hana语句读取数据库_数据_03

一般认为,列存储对数据的读取优于行存储

行存储对数据的更新更加好。

所以,列存储适用于以下情况:

1:大量数据的统计计算和访问只会在需要访问的某几个单列中进行

2:对于需要经常对表结构进行改动的或者扩展的情况

3:对很多行记录和列字段进行频繁操作

4:当最主要的列中有很多重复数据的情况,可以对其进行数据压缩

行存储使用于以下情况:

1:在某个时间点只处理单行的记录。

2:需要访问这一记录的所有列信息,避免跳跃式访问读取。

3:列中包含最主要的不重复数据。

4:没有快速聚合或进行快速查询的需要。

5:数据库表中的记录不太多的情况。