内存数据库和嵌入式数据库的区别
Posted
技术标签:
【中文标题】内存数据库和嵌入式数据库的区别【英文标题】:difference between in-memory and embedded databses 【发布时间】:2018-07-24 17:56:24 【问题描述】:我想知道我的理解是否正确:
embedded :如果我的应用程序启动,数据库就会启动,如果我的应用程序关闭,数据库就会关闭。 我不是指嵌入式空间中使用的数据库。
内存中:数据库可以在任何服务器上;无论我的应用程序在哪里运行。就是这样,这些使用主内存。
【问题讨论】:
您在问题中包含的标签非常恰当地解释了 IMO 的概念。 这里的“紧密集成”是什么意思? 这意味着它完全集成在您的应用程序中。它已准备好使用它,但可能很难将其移植到其他应用程序。 这是否意味着数据库和应用程序将在同一台服务器上运行? 我基本上想知道嵌入式数据库是否在我的应用程序启动时创建,在我的应用程序进程结束时结束。 【参考方案1】:完全披露:我代表 eXtremeDB 的供应商。
嵌入式数据库至少从 80 年代初就已经存在。 db_VISTA、c-tree、btrieve、Empress 是当时最常见的一些。
“嵌入式数据库”与嵌入式系统无关。它只是指作为一组目标代码库交付给程序员的数据库管理系统,这些目标代码库将与应用程序目标代码链接成可执行程序映像。换句话说,数据库功能成为应用程序本身的一部分,在同一个地址空间中。嵌入式数据库主要用于 80 年代和 90 年代的业务线应用程序。直到 90 年代末和 2000 年代初,嵌入式系统才开始大量迁移到 32 位架构,数据库系统才被认为具有商业可行性。 eXtremeDB 于 2001 年推出,是第一个专门为嵌入式系统编写的内存中嵌入式数据库系统。 (8 位和 16 位系统没有足够的可寻址内存来支持 DBMS。)
嵌入式数据库系统可以是内存数据库或持久数据库(即基于磁盘的数据库)。
内存数据库系统可以是嵌入式数据库系统,也可以是客户端/服务器数据库系统。
客户端/服务器数据库系统可以是内存数据库系统,也可以是持久性数据库系统。
如您所见,所有的线都交叉。你可以有
内存中的客户端/服务器 客户端/服务器持久化 嵌入内存 嵌入式持久性而且,你有以上所有的混合体。
【讨论】:
以上是关于内存数据库和嵌入式数据库的区别的主要内容,如果未能解决你的问题,请参考以下文章