视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
HANA数据库为何如此之快
2020-11-09 16:30:58 责编:小采
文档

原文标题是How SAP HANA Is Such a Fast Database,不过作者的观点是HANA的快主要源自硬件的发展,而且HANA并非适合所有的应用场景。 不过我关注的恰好是结论之外的部分。 数据访问模式的变化 存储硬件的提升,从物理磁盘到SSD, 内存,相应的数据库查询方式

原文标题是How SAP HANA Is Such a Fast Database,不过作者的观点是HANA的快主要源自硬件的发展,而且HANA并非适合所有的应用场景。
不过我关注的恰好是结论之外的部分。

数据访问模式的变化

存储硬件的提升,从物理磁盘到SSD, 内存,相应的数据库查询方式也发生了变化。
当数据库使用传统的物理磁盘,如果在一个具有10列的表中读取3列,你也必须读取全部10列。
如果表为100M,100万行,那么必须读取整个表来完成查询,在涉及多表Join时,情况更加严重。

如果数据库存储在SSD或内存这些随机访问型存储上,你需要3列,就只需读取3列。

数据交换的消除

传统的存于磁盘的数据库需要花费大量的时间来进行Swapping,即将数据读入缓存,处理后随后又将数据写回磁盘,周而复始,生生不息, :)。
而内存数据库则消除了这种数据交换(Swapping),因为所有的数据都在内存中操作,需要存储的唯一目的就是为了数据持久化和备份。
其实这解释了即使将数据全部Cache到内存,仍然不如内存数据库快的原因,无论是列式数据库如HANA, 还是行式数据库如TimesTen。

结论

列式数据库有速度的优势,但不是万能的优势,尽管SAP希望将HANA作为一体适用的平台,不过One Size Does Not Fit All, 此数据库的原理来说,HANA非常适合BW这样的分析性应用,对于ERP这样的OLTP的应用,我们还是拭目以待,看看S/4 HANA的作为吧。

参考

  • How SAP HANA Is Such a Fast Database - SCM Focus’ SAP HANA Blog
  • 下载本文
    显示全文
    专题