嵌入式数据库对比

来源:互联网 发布:floyd算法详解 编辑:程序博客网 时间:2024/05/15 12:47
项目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)。