公众号:matinal
本文作者:matinal
前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
SAP HANA处理大量数据速度快的机制理解
1:HANA使用列存储的数据管理优化数据存取
从列去读取数据库表,其他忽略
2:对于内存和CPU之间的访问速度差异,增加内核,压缩数据
3:使用列存储技术高效利用CPU的缓存。
行存储数据的读取方式容易造成内存的数据读取及高速缓存的丢失
4:利用新型CPU预读取的技术夹克数据的读取
就是读取一个缓存数据的同时,预读另一个缓存数据。
HANA采用了行列混合的存储模式
即在单一数据库系统中,能支持两种不同的数据存储模式。
传统意义上数据库表是一个二维表,由行和列组成。
行存储方式包含一条记录中所有的数据
而列存储方式则包含这一列中所有数据。
如下图演示:
这样一个数据库表的话,
行存储如下:
列存储如下:
一般认为,列存储对数据的读取优于行存储
行存储对数据的更新更加好。
所以,列存储适用于以下情况:
1:大量数据的统计计算和访问只会在需要访问的某几个单列中进行
2:对于需要经常对表结构进行改动的或者扩展的情况
3:对很多行记录和列字段进行频繁操作
4:当最主要的列中有很多重复数据的情况,可以对其进行数据压缩
行存储使用于以下情况:
1:在某个时间点只处理单行的记录。
2:需要访问这一记录的所有列信息,避免跳跃式访问读取。
3:列中包含最主要的不重复数据。
4:没有快速聚合或进行快速查询的需要。
5:数据库表中的记录不太多的情况。
更多内容,关注我的公众号吧。