我读到一些数据库可以在内存中使用,但想不出为什么有人想使用这个功能.我总是使用数据库来保存数据和内存缓存,以便快速访问.

推荐答案

缓存也是一种数据库,就像文件系统一样."内存缓存"只是内存数据库的一个具体应用,一些内存数据库专门用作内存缓存.

内存中数据库的其他用途已经包含在其他答案中,但让我也列举一下这些用途:

  1. 内存缓存.通常会使用专门用于该用途的数据库系统(可能称为"内存缓存"而不是"数据库").
  2. 测试数据库相关代码.在这种情况下,通常会使用一些通用数据库系统的"内存中"模式,但也可以使用专用的"内存中"数据库来取代其他"磁盘上"数据库,以便更快地进行测试.
  3. 复杂的数据操作.内存中的SQL数据库通常以这种方式使用.SQL是一个很好的数据操作工具,有时在计算最终结果时不需要将数据写入磁盘.
  4. 存储瞬态运行时状态.有些应用程序需要将其状态存储在某种类型数据库中,但不需要在应用程序重新启动时保持该状态.想一想某种进程管理器-它需要跟踪子进程运行,但是数据只有在应用程序和子进程运行时才有效.

Database相关问答推荐

在GO中减少LevelDB数据库大小的问题(Levigo)

MongoDB根据嵌套文档中的值匹配数组

如何在同一个表的派生部分引用主键?

如何替换对象数组内的数组元素

如何高效地存储 100 万个单词并通过starts_with、contains 或ends_with 进行查询?

Active Record - 获取数据库中的第二个、第三个.. 项(无 ID)

在 MySQL 中创建表时如何定义列的默认值?

从 DbDataReader 读取数据的最快方法是什么?

数据库中空值(nulls)使用的空间

处理hibernate entities上的数据库视图的优雅方法?

Android Room:如何建模关系?

如何用 SQL 思考?

使用多个数据库模式的 JPA

您最喜欢在 django 中管理数据库迁移的解决方案是什么?

使用 PHP 和 MySQL 开发测验Web 应用程序的数据库设计

可以将 SQLAlchemy 配置为非阻塞吗?

复式记账的关系数据模型

SQLite3 数据库的最大连接数是多少?

如何将空值传递给外键字段?

列的 SQL Server 2008 千位分隔符