内存数据库和磁盘内存数据库之间的区别

PSR*_*PSR 16 mysql database performance hsqldb

最近我听说过内存数据库的概念.

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

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

提前致谢....

Dee*_*ava 24

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

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

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

磁盘数据库

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

  • 数据始终保留在磁盘上.

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

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

  • 支持非常广泛的工作负载,即OLTP,数据仓库,混合工作负载等.

内存数据库

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

  • 数据是持久性的或易变的,具体取决于内存数据库产品.

  • 专用数据结构和索引结构假设数据始终在主存储器中.

  • 针对专业工作负载进行了优化; 即通信行业特定的HLR/HSS工作负载.

  • 数据库大小受主内存量的限制.


Ric*_*mes 7

MySQL产品

MySQL有几个"引擎".在所有引擎中,操作都在RAM中执行.引擎在确保数据"持久"存储在磁盘上的能力差异很大.

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

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

ENGINE = InnoDB - 这是首选引擎.它不仅坚持磁盘,而且即使在电源故障时也能"保证"一致性.