首页 > 数据库 > 数据库开发技术 > 说说HANA数据库中的行式存储与列式存储

下边是我在网上搜到的多年以前对HANA的使用场景的归纳:
Column-Based andRow-Based Storage in the SAP HANA Database
HANA数据库同时支持行存储和列存储。列存储读性能好,拥有较高的压缩比,一些特性如分区只适用于列存储。常用于批量更新的大数据量表。行存储更新插入性能好,常用于经常单独操作的小数据量表。
| 存储类型 | 使用情况 |
|---|---|
| 列存储 | Ø 在少数列上进行的计算 |
| Ø 基于少数列的值进行表搜索 | |
| Ø 表有很多列 | |
| Ø 表有大量的行和列操作(集合,扫描等) | |
| Ø 因为主要列含有大量重复值可以达到高压缩比 | |
| 行存储 | Ø 一次只存储少量数据(如select/update一条记录) |
| Ø 应用需要访问整条记录数据 | |
| Ø 列含有较少重复值以至于压缩效果不好 | |
| Ø 不需要集合和快速搜索操作 | |
| Ø 表数据量较小(如配置表) |
目前,HANA针对列式存储已经做了相当多的优化。其OLTP性能与行式存储已经没有什么明显区别。上边关于行存储的那些结论和适用场合基本还算吻合。但是列存储的使用情况,限制已经没有那么多了。
另外,如果是数据量超大,需要各种分区支持,并且还有一些高级特性,列式存储都比行式存储更适用。同时,它最吸引人的地方在于它 的高压缩比,这意味着在云计算环境中,在取得相同性能的前提下,更节省资源,更省钱。
所以,如果没有什么特殊需要的话,列存储基本上可以满足绝大多数需求,无论是OLAP还是OLTP。咱们也不提当下流行的HTAP(所谓的: hybrid transaction/analytics processing, 抱歉,我真的不是什么概念党。)
[1] HANA性能浅析 : https://cloud.tencent.com/developer/news/242802
[2] 性能测试之常见术语浅析: https://cloud.tencent.com/developer/news/281795
[3] 调整插入和数据负载的HANA性能: https://cloud.tencent.com/developer/news/454968
[4] SAP HAANSAP HAAN delta merge 详解: https://www.cnblogs.com/tingxin/p/12599870.html
[5] SAP HANA内存计算介绍: https://www.cnblogs.com/liuzhuqing/p/7480172.html
[6] 如何轻松搞定SAP HANA数据库备份: https://zhuanlan.zhihu.com/p/191550645
[7] 什么是SAP HAN:https://www.sap.cn/products/technology-platform/hana/what-is-sap-hana.html#database-design
[8] SAP HANA技术总结: HTAP介绍: https://cloud.tencent.com/developer/news/287688
原文作者:数据库杂记;如有侵权,请联系管理员删除。