嵌入式数据库对比

项目 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)。

你可能感兴趣的:(技术文章)