为什么常常没有使用内存数据库?

时间:2014-05-02 15:36:18

标签: performance in-memory-database

如果内存数据库的速度和它们声称的一样快,为什么它们不常用?

2 个答案:

答案 0 :(得分:0)

可能是因为一个或多个:

  • 数据大小和可用RAM大小之间通常不匹配
  • 当数据较小时,正常的磁盘缓存和操作系统内存/磁盘管理可能同样有效
  • 当数据很大时,交换到磁盘可能会使任何好处无效
  • 足够快以满足性能要求和服务水平并不意味着尽可能快 - 足够快就足够了。

答案 1 :(得分:0)

内存数据库不常用的一个主要原因是成本。正如您所说,出于显而易见的原因,内存数据库通常比磁盘驻留数据库快一个数量级。但是,RAM也比硬盘驱动器贵得多,因此不适用于大型数据库。话虽如此,随着RAM内存数据库变得更便宜,今天对企业来说更具可行性。

另一个原因是内存数据库通常不符合ACID。这是因为内存是易失性的,并且诸如功率损耗之类的无法预料的事件可能导致数据完全丢失。由于这对于绝大多数用例来说是不可接受的,因此大多数内存数据库最终都会利用磁盘来保存数据。当然,这最终会通过重新引入磁盘I / O作为性能瓶颈来破坏内存数据库的一些好处。

无论如何,随着RAM变得更便宜,内存数据库可能会占据主导地位。两者之间的性能差异太大而不容忽视。知道了这一点,多家供应商已经将他们的帽子投入内存空间,例如Oracle TimesTen,SAP Hana和其他许多人。此外,像Altibase这样的公司正在提供“混合”DBMS系统,它包含内存和磁盘驻留组件。

您可能希望阅读这些内存中的产品,以便更好地了解内存数据库。

http://www.oracle.com/technetwork/database/database-technologies/timesten/overview/index.html

http://www.saphana.com/

http://altibase.com/in-memory-database-hybrid-products/hdbtm-hybrid-dbms/