【问题标题】:Difference between In memory databases and disk memory database内存数据库和磁盘内存数据库的区别
【发布时间】:2014-11-06 07:01:05
【问题描述】:

最近听说内存数据库的概念。

在任何类型的数据库中,我们最终都将数据存储在计算机中,我们的程序将从那里获取数据。与其他数据库相比,内存数据库操作如何快速。

内存数据库是否会将数据库中的所有数据加载到内存(RAM)中。

提前谢谢....

【问题讨论】:

    标签: mysql database performance hsqldb


    【解决方案1】:

    内存数据库(IMDB;也称为主内存数据库系统或 MMDB 或内存驻留数据库)是一种数据库管理系统,主要依靠主内存来存储计算机数据。它与采用磁盘存储机制的数据库管理系统形成对比。主内存数据库比磁盘优化数据库更快,因为内部优化算法更简单并且执行更少的 CPU 指令。访问内存中的数据可消除查询数据时的寻道时间,从而提供比磁盘更快且更可预测的性能。

    响应时间至关重要的应用程序,例如运行电信网络设备和移动广告网络的应用程序,通常使用主内存数据库。

    在回复您的查询时,是的,它会将数据加载到您计算机的 RAM 中。

    磁盘数据库

    • 存储在磁盘上的所有数据,将数据移动到主磁盘所需的磁盘 I/O 需要时记忆。

    • 数据始终保存到磁盘。

    • 传统的数据结构,如 B 树,旨在存储表和 在磁盘上有效地索引。

    • 几乎无限的数据库大小。

    • 支持非常广泛的工作负载,例如 OLTP、数据仓库、 混合工作负载等。

    内存数据库

    • 所有数据都存储在主存中,无需进行磁盘I/O查询 或更新数据。

    • 数据是持久的还是易失的,取决于内存数据库 产品。

    • 专用数据结构和索引结构假定数据是 总是在主内存中。

    • 针对特殊工作负载进行了优化;即通讯 行业特定的 HLR/HSS 工作负载。

    • 数据库大小受主存容量限制。

    【讨论】:

      【解决方案2】:

      内存数据库通常将整个数据库放在内存中。 (如 MySQL 数据库引擎内存) 这是一个巨大的性能提升,但是 RAM 很昂贵并且通常不是持久的,因此您会在重新启动时丢失数据。 有一些方法可以减少最后一个问题,例如通过定时快照或磁盘数据库上的复制。 还有一些混合类型,只有一部分 db 在内存中。

      【讨论】:

        【解决方案3】:

        MySQL 产品

        MySQL 有几个“引擎”。在所有引擎中,动作都是在 RAM 中执行的。引擎在确保数据“持久”在磁盘上的能力方面存在显着差异。

        ENGINE=MEMORY -- 这不是持久的;数据只能在 RAM 中找到。它仅限于某些预设的最大尺寸。断电时,所有数据(在 MEMORY 表中)都会丢失。

        ENGINE=MyISAM -- 这是一个旧引擎;它将数据持久化到磁盘,但在电源故障的情况下,有时索引已损坏并需要“修复”。

        ENGINE=InnoDB -- 这是首选引擎。它不仅可以持久保存到磁盘,而且即使在断电时也能“保证”一致性。

        【讨论】:

        • MariaDB 中还有几个引擎。 MySQL 8.0 将有一个 Temp 表引擎。
        • 这里提到 MySQL 引擎有什么意义?几乎所有 RDMS 都有内存存储选择,但问题仅在于概念。
        • @Lashae - MySQL 的 MEMORY 不会从磁盘加载。 (用户可以自己这样做。)8.0 的注释指出,在新版本中以特殊方式处理了“内存”的潜在用途。好的,也许提到 MyISAM 和 InnoDB 是离题了。
        • 进一步更新:8.0 似乎对如何处理临时表犹豫不决。在尘埃落定之前,我不敢说什么。
        【解决方案4】:

        还有像 Tarantool 这样的内存数据库,可以处理大于可用 RAM 的数据集。 Tarantool 能够使用这些集合,因为它针对快速随机写入进行了优化,这是出现的主要瓶颈。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-29
          • 2010-11-29
          • 2015-11-10
          • 2018-07-24
          • 2012-03-24
          • 1970-01-01
          • 2015-09-20
          • 1970-01-01
          相关资源
          最近更新 更多