Performance 为什么不';内存中常用的数据库是什么?

Performance 为什么不';内存中常用的数据库是什么?,performance,in-memory-database,Performance,In Memory Database,如果内存中的数据库速度和它们声称的一样快,为什么它们没有得到更广泛的利用 可能是因为一个或多个: 数据大小和可用RAM大小之间经常不匹配 当数据较小时,正常的磁盘缓存和操作系统内存/磁盘管理可能同样有效 当数据较大时,交换到磁盘可能会使任何好处无效 足够快以满足性能要求和服务级别并不意味着尽可能快-足够快就足够好了 内存数据库不常用的主要原因之一是成本。正如您所说的,内存中的数据库通常比驻留在磁盘上的数据库快一个数量级,原因很明显。然而,RAM也比硬盘驱动器昂贵得多,因此不适用于大型数据库。话

如果内存中的数据库速度和它们声称的一样快,为什么它们没有得到更广泛的利用

可能是因为一个或多个:

  • 数据大小和可用RAM大小之间经常不匹配
  • 当数据较小时,正常的磁盘缓存和操作系统内存/磁盘管理可能同样有效
  • 当数据较大时,交换到磁盘可能会使任何好处无效
  • 足够快以满足性能要求和服务级别并不意味着尽可能快-足够快就足够好了
      内存数据库不常用的主要原因之一是成本。正如您所说的,内存中的数据库通常比驻留在磁盘上的数据库快一个数量级,原因很明显。然而,RAM也比硬盘驱动器昂贵得多,因此不适用于大型数据库。话虽如此,随着RAM越来越便宜,今天的内存数据库在企业中的使用变得更加可行

      另一个原因是内存中的数据库通常不符合ACID。这是因为内存是不稳定的,不可预见的事件(如断电)可能会导致数据完全丢失。由于这在绝大多数用例中都是不可接受的,因此大多数内存中的数据库最终都会利用磁盘来持久化数据。当然,由于重新引入磁盘I/O作为性能瓶颈,这最终破坏了内存数据库的一些好处

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

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


      redis/memcached。。。是内存中的数据库,你不能说它们不常用。