嵌入式数据库对比

原创 2013年12月01日 20:07:16
项目 eXtremeDB特性 Empress特性 SolidDB特性 BerkeleyDB特性
数据库引擎 提供内存和磁盘的混和引擎,用户可以自由选择将数据存储在内存还是存储在磁盘。也可以提供纯内存引擎。 提供内存和磁盘的混和引擎,用户可以自由选择将数据存储在内存还是存储在磁盘。 提供内存和磁盘的混和引擎,不能只提供内存引擎。 没有混和引擎,本质上是一个基于磁盘的数据库。用户可以选择使用内存模式或磁盘模式。
性能 eXtremeDB的读事务在纳秒级,而写事务只需要几微秒。 整体性能比eXtremeDB稍差。 最快也需要几十微秒完成一条记录 的读写操作,整体性能最差。 在事务模式下,其性能与eXtremeDB性能相当。若不使用它的事务模式,则性能比eXtremeDB要好。
支持平台 支持的操作系统相当广泛,基本上支持市面上所有的操作系统,可以支持各操作系统所支持的所有硬件平台。 支持操作系统较广泛。可以支持各操作系统所支持的所有硬件平台。 在嵌入式领域支持的操作系统有限,且版本较低。 开源数据库产品,理论上可以移植到大部份操作系统平台之上。
已成功应用的领域 工业控制,网络、通信设备,医疗设备,安全控制系统,消费类电子,军事/航空航天,金融。 消费电子,电信设备、工业控制、医疗仪器及网络管理。 网络、通信设备,消费电子,军工,电信系统。 网络、通信设备,存储,安全, 金融。
HA功能 提供1:1,1:N的HA实时热备,主备节点间的通信协议(如TCP/UDP等)可以根据用户需要修改。提供同步和异步HA模式。备节点只读。 提供表级复制功能。 只提供1:1的备份,备节点可以提供只读功能  提供1:1,1:N的HA实时热备,主备节点间的通信协议(如TCP/UDP等)可以根据用户需要修改。提供同步和异步HA模式。备节点只读。
集群功能 提供N个结点的集群功能,能很好地实现多数据库之间负载,给用户提供更大的吞吐率。 不支持集群功能。 不支持集群功能。 不支持集群功能。在使用HA的情况下,备节点可以提供只读功能。
内存管理 使用预分配内存方式,完全自己管理内存,不产生操作系统内存碎片。有利操作系统稳定。 使用后分配内存方式,依赖操作系统管理内存,随着系统的运行,会产生大量的内容碎片。 使用后分配内存方式,依赖操作系统管理内存,随着系统的运行,会产生大量的内容碎片。 拥有专门的内存池管理子系统,本质上是一个基于磁盘的数据库。
支持共享内存 支持共享内存。 支持共享内存。 不支持共享内存。 通过共享内存区来实现多进程间的数据共享。
事务处理 提供最小轻量级的事务,可以提供五个优先级的事务可选,保证关键任务能快速得到响应。eXtremeDB是完全意义上的实时数据库。 不能设置事务的优先级。锁存机制较好。 不能设置事务的优先级。支持Read committed和Repeatable read两种 隔离级别 不能设置事务的优先级。可以对ACID属性进行组合,可以在没有事务的情况下处理数据
索引类型 提供Hash, B-Tree, T-Tree, R-Tree,  Patricia trie, KD-Tree以及用户自定义的索引。还有eXtremeDB自己的OID, AutoID, List可以使用。用户可以根据项目需要,选择适合自己的索引类型来使用,达到最高的性能。 提供T-Tree索引,用户不能决定使用哪种索引类型。不能依据项目应用的情况灵活使用索引。 提供B-Tree, T-Tree索引,用户不能决定使用哪种索引类型。不能依据项目应用的情况灵活使用索引。 数据库访问方式提供B+树算法,HASH算法,Recno算法,Queue算法,每个数据库只能选择其中的一种算法。
内存使用 eXtremeDB引擎需要不到200KB的内存空间。 Empress引擎需要约800KB的内存空间。 至少需要4MB的内存空间 至少需要500KB的内存空间
数据库体积(大小) 50-300KB,数据库引擎(分为内存引擎,和内存磁盘混和引擎两种)和组件(eXtremeSQL, eXtremeXML,eXtremeHA, eXtremeWS)可以根据需要自由组合。数据库体积可以根据需要保持最小。 引擎最小1MB,根据使用组件的不同,而不同。 4MB ~ 8MB, 数据库只提供内存磁盘混和引擎。数据库组件不可拆分 300KB ~ 500KB, 数据库没有内存引擎和磁盘引擎的区别。组件不可拆分。
数据访问方式,编程接口 提供两种数据访问方式,一种是SQL,一种是C/C++函数(接口)。SQL访问方式的编程接口又有C接口,C++接口,标准ODBC接口三种。通过JDBC-ODBC桥实现JDBC的访问。 提供C/C++ API和,提供ODBC和JDBC接口,支持SQL访问方式。 提供ODBC和SA(Solid API),JDBC接口,只支持SQL访问方式。 引擎提供C语言的API,引擎之上的XML版本可以提供C++的接口和XML 的访问方式。不提供SQL的访问方式。
NVRAM 支持非易失性RAM(NVRAM)。将数据库建立在NVRAM上,不需要磁盘操作也能保证数据库的安全性。 不支持非易失性RAM(NVRAM)。 不支持非易失性RAM(NVRAM)。 不支持非易失性RAM(NVRAM)。

常用的几种嵌入式数据库

1.MySQL的体积比较小,它是一个关系型的数据库管理系统,是由瑞典MySQL AB公司开发出来的,由于MySQL体积小、速度快、总体成本低,特别是它的源码的开放特点,许多中小型网站为了降低网站的总体...
  • xue815020462
  • xue815020462
  • 2013年06月13日 08:54
  • 1863

Linux学习之 嵌入式数据库

嵌入式数据库 一.数据库综述 数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使...
  • ky_heart
  • ky_heart
  • 2016年10月31日 19:22
  • 763

开源嵌入式数据库Bericel ey DB和SQLite的比较

1 嵌入式数据库     通常,我们采用数据库来实现对数据的存储、检索等功能。像MySQL这类基于C/S结构的关系型数据库系统,虽然代表着目前数据库应用的主流,却并不能满 足所有应用场合的需要。很多的...
  • xuxinshao
  • xuxinshao
  • 2008年03月11日 10:29
  • 1913

开放源码嵌入式数据库 SQLite 简介

开放源码嵌入式数据库 SQLite 简介 零配置数据库:照亮应用开发之路 Nils-...
  • roger_77
  • roger_77
  • 2006年03月25日 14:07
  • 2907

嵌入式数据库 SQLite 浅析

SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共...
  • zqixiao_09
  • zqixiao_09
  • 2016年01月16日 14:54
  • 3984

Java嵌入式数据库的应用

嵌入式数据库意味着该数据库集成为应用软件的一个不可分割部分。特别是使用JDBC驱动程序访问数据库的Java应用程序。 数据库引擎在应用程序运行时如运行在同一个JVM内部队列。存储就像任何库扩展,类似于...
  • woalger
  • woalger
  • 2016年04月27日 11:28
  • 1635

嵌入式开源数据库资料

  • 2008年11月16日 09:35
  • 12.48MB
  • 下载

Berkeley DB:开源嵌入式数据库测评报告

Berkeley DB:开源嵌入式数据库测评报告 【2005-04-07 10:44】【】【IT专家网】 像MySQL这类基于C/S结构的关系型数据库系统虽然代表着目前数据库应用的主流,但却并不能满足...
  • fytzzh
  • fytzzh
  • 2006年03月30日 11:25
  • 1142

SQLite3嵌入式数据库arm+linux移植

SQLite数据库介绍 SQLite数据库是一种嵌入式数据库,他的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现对于数据库而言的必备的功能。 尽管简单性是SQLit...
  • yangxuan12580
  • yangxuan12580
  • 2016年05月10日 17:58
  • 1663

h2嵌入式/内嵌式数据库

h2数据库简单的介绍与使用
  • u012792137
  • u012792137
  • 2017年03月29日 11:17
  • 602
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式数据库对比
举报原因:
原因补充:

(最多只允许输入30个字)