mysql - 内存数据库和磁盘内存数据库的区别

标签 mysql database performance hsqldb

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

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

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

提前谢谢....

最佳答案

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

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

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

磁盘数据库

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

  • 数据始终保存到磁盘。

  • B 树等传统数据结构旨在存储表和 磁盘上的高效索引。

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

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

内存数据库

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

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

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

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

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

关于mysql - 内存数据库和磁盘内存数据库的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802521/

相关文章:

php - mySQL 下拉列表中有重复条目

mysql - 搜索房间可用性

php - 如何在 SQL (MySQL) 中合并两个表?

c - 全局化 2 个小型阵列如何导致性能显着下降?

c# - c# 中信号线程的性能

php - PDO 连接到多个数据库

MySQL 需要使列不唯一。错误无法删除 'ColumnName' ;检查列/键是否存在

mysql - mysql 中存储大约 4.5 亿行给定数据的最佳数据库结构是什么

c# - 如何在现有远程数据库中添加表并将其链接到 Entity Framework 模型?

C++ 更快地进行字符串加法?