请问什么样的应用更合适内存数据库?
通常来说,内存数据库并不适合用来作为交易系统的后台数据库,因为就像它的名称一样,数据是存储在内存当中的。如果我们在内存当中运行一个标准的交易型数据库,那么当系统出现故障或者机房突然断电了,那么就很有可能所有交易都丢失。也就是说它缺少交易系统中所必需的持久性,而持久性也是ACID标准中非常重要的一环。
然而这样的情况正在发生变化,越来越多新的内存技术开始支持ACID,比如微软就刚刚推出了SQL Server 2014内存OLTP功能,甲骨文于去年宣布将推出Oracle 12c内存数据库选件,而SAP的HANA内存数据库声称将支持OLTP以及OLAP。
然而,我们看到的大量内存数据库还是用来跑分析应用,因为交易数据都存储在传统磁盘当中,而内存数据库中运行都只是原始数据的副本。
更具体来说,内存数据库最佳的应用场景是相对小型数据集的分析负载,因为尽管硬件的价格在不断下降,但内存设备还是要比传统磁盘但价格贵上很多。
请记住,“相对小型的数据集”只是代表着你可以负担得起的数据规模,这些数据是要存放在内存设备当中的。事实上,相对小的概念有时会让你大吃一惊。举个例子,我最近为一家软件厂商做了一个算术题,让他们了解到相对小究竟有多大。
为了尽量直观一些,我们假定你想要分析一个单独存储20列数据的表。其中一半的列都是文本(平均长度7个字符),有5列是日期数据,3列是整型而剩下的是实际数字。
像这样拥有150万行数据的CSV表大概是236 MB大小,也就是说1/4的GB。如果我们把表的大小再翻一倍,也就是说有300万行数据,40列数据,那么它也不过只有4GB而已。而现在大部分的笔记本电脑就已经拥有8GB内存以上了,所以即使在没有压缩的情况下,像这种规模的数据集也属于小数据的范畴,完全可以使用内存数据库来进行分析。
服务器的内存肯定比个人笔记本电脑的内存要大得多,而32GB的内存就可以分析5000万行,80列的数据。不要忘了,内存数据库往往自带数据压缩功能,而数据压缩比也会根据数据自身的情况而有所不同。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
专访麦科捷王蓉:内存数据库如何给客户带来价值
2001年成立于西雅图,eXtremeDB的“东家”McObject(麦科捷)公司在这十几年当中就只专注于一件事——开发内存数据库产品。
-
SAP HANA数据存储:列式数据存储技术
本文选自《Implementing SAP HANA》,我们主要介绍了列式数据存储技术以及SAP HANA的应用。
-
SAP HANA数据存储:OLTP与OLAP存储方法对比
本文选自《Implementing SAP HANA》,我们主要介绍了OLTP和OLAP所用到的不同数据存储方法。
-
SAP HANA数据存储:传统硬盘的瓶颈问题
本文选自《Implementing SAP HANA》,主要探讨了基于传统磁盘的数据库性能问题,以及我们如何解决这一问题。