常用的嵌入式数据库的比较

2.1 Berkeley DB

  技术特点:

  1. Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。(不使用SQL语言)

  2. Berkeley DB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同数据库相关的操作都由Berkeley DB函数库负责统一完成。

  3. Berkeley DB轻便灵活(Portable),可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。Berkeley DB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。

  4. Berkeley DB是可伸缩(Scalable)的,这一点表现在很多方面。Database library本身是很精简的(少于300KB的文本空间),但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。Berkeley DB能以足够小的空间占用量运行于有严格约束的嵌入式系统。

  Berkeley DB在嵌入式应用中比关系数据库和面向对象数据库要好,有以下两点原因:

  (1)因为数据库程序库同应用程序在相同的地址空间中运行,所以数据库操作不需要进程间的通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销,要远远大于函数调用的开销;

  (2)因为Berkeley DB对所有操作都使用一组API接口,因此不需要对某种查询语言进行解析,也不用生成执行计划,大大提高了运行效。

2.2 SQLite

  轻量级别数据库SQLite的主要特点:

  1. 支持事件,不需要配置,不需要安装,也不需要管理员;

  2. 支持大部分SQL92;

  3. 一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使用,最大支持数据库到2T,字符和BLOB的支持仅限制于可用内存;

  4. 整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖

  5. 源代码开放,代码95%有较好的注释,简单易用的API。官方带有TCL的编译版本。

2.1 Berkeley DB

  技术特点:

  1. Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。(不使用SQL语言)

  2. Berkeley DB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同数据库相关的操作都由Berkeley DB函数库负责统一完成。

  3. Berkeley DB轻便灵活(Portable),可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。Berkeley DB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。

  4. Berkeley DB是可伸缩(Scalable)的,这一点表现在很多方面。Database library本身是很精简的(少于300KB的文本空间),但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。Berkeley DB能以足够小的空间占用量运行于有严格约束的嵌入式系统。

  Berkeley DB在嵌入式应用中比关系数据库和面向对象数据库要好,有以下两点原因:

  (1)因为数据库程序库同应用程序在相同的地址空间中运行,所以数据库操作不需要进程间的通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销,要远远大于函数调用的开销;

  (2)因为Berkeley DB对所有操作都使用一组API接口,因此不需要对某种查询语言进行解析,也不用生成执行计划,大大提高了运行效。

2.2 SQLite

  轻量级别数据库SQLite的主要特点:

  1. 支持事件,不需要配置,不需要安装,也不需要管理员;

  2. 支持大部分SQL92;

  3. 一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使用,最大支持数据库到2T,字符和BLOB的支持仅限制于可用内存;

  4. 整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖

  5. 源代码开放,代码95%有较好的注释,简单易用的API。官方带有TCL的编译版本。

2.3 Empress(商业数据库)

  开发阶段特点:

  1. 可嵌入程序,该特性使应用程序和数据库工作于统一地址空间,增强了系统的稳定性,提高了系统的效率。

  2. 确定的响应时间,Empress 可以使数据的响应时间相对一致,使用者可以设定一个超时限制,如果在规定时间内没有完成插入,修改等操作,系统会报错。

  3. 快速的操作Empress 提供了内核级的CAPI,称为MR, 用MR编写的应用程序在执行时不需要解析。另外在MR中加速的机制还包括优秀的加锁控制,内存管理和基于记录数量的选择功能。

  4. 灵活的开发方式,Empress 提供多种开发接口,加快开发进程而无需开发者重新学习开发语言和熟悉开发环境。

  5. 友好的存储方式,Empress 数据库可以放在操作系统支持的任何存储设备中,Empress的表单甚至可以分割放在不同的存储设备中,比如在内存,硬盘和CD-ROM中。

  6. 微型内核结构 Empress 高度单元化, 可根据需要选择需要的单元,从而缩小产品中Empress 数据库所占用的资源。

  7. 宽广的平台支持,Empress 支持多种硬件平台和软件平台, 也可移植到客户要求的硬件平台或操作系统。

  技术优势:

  1. 微型内核结构,占用少量内存空间,特别适合紧凑性的设计

  2.一周7天,每天24小时连续工作,无需任何额外操作免维护

  3. 内核级 CAPI 接口,使运行速度最大化

  4. 高度灵活的SQL接口

  5. 优秀的掉电恢复能力

  6. 强壮的交易和锁存机制

  7. 支持SCSI,RAID,IDE,RAM,CD-RW,DVD-ROM,CF,等存储介质

  8. 支持Unicode 码

  9. 引擎可加载于磁盘和内存

2.4 eXtremeDB

  eXtremeDB特点:

  1. 内存数据库,eXtremeDB将数据以程序直接使用的格式保存在主内存之中,不仅剔除了文件I/O的开销,也剔除了文件系统数据库所需的缓冲和Cache机制。其结果是每个交易一微秒甚至更少的极限速度,相比于类磁盘数据库而言,速度成百上千倍地提高。作为内存数据库,eXtremeDB不仅性能高,而且数据存储的效率也非常高。为了提高性能并方便程序使用,数据在eXtremeDB中不做任何压缩,100M的空间可以保存高达70M以上的有效数据,这是其他数据库所不可想象的。

  2. 混合数据库,eXtremeDB不仅可以建立完全运行在主内存的内存数据库,更可以建立磁盘/内存混合介质的数据库。在eXtremeDB,我们把这种建立在磁盘、内存或磁盘+内存的运行模式称为eXtremeDB Fusion融合数据库。eXtremeDB Fusion兼顾数据管理的实时性与安全性要求,是实时数据管理的台阶性进步。

  3. 嵌入式数据库,eXtremeDB内核以链接库的形式包含在应用程序之中,其开销只有50KB~130KB。无论在嵌入式系统还是在实时系统之中,eXtremeDB都天然地嵌入在应用程序之中,在最终用户毫不知情的情况下工作。eXtremeDB的这种天然嵌入性对实时数据管理至关重要:各个进程都直接访问eXtremeDB数据库,避免了进程间通信,从而剔除了进程间通信的开销和不确定性。同时, eXtremeDB独特的数据格式方便程序直接使用的,剔除了数据复制及数据翻译的开销,缩短了应用程序的代码执行路径。

  4. 由应用定制的API,应用程序对eXtremeDB数据库的操作接口是根据应用数据库设计而自动产生,不仅提升了性能,也剔除了通用接口所必不可少的动态内存分配,从而提高了应用系统的可靠性。定制过程简单方便,由高级语言定制eXtremeDB数据库中的表格、字段、数据类型、事件触发、访问方法等应用特征,通过eXtremeDB预编译器自动产生访问该数据库的C/C++ API接口。

  5. 可预测的数据管理

  eXtremeDB独特的体系结构,保证了数据管理的可预测性。eXtremeDB不仅更快、更小,而且更确定。在80双核CPU的服务器上,eXtremeDB在1TB内存里保存15B条记录;无论记录数多少,eXtremeDB可以在八十分之一微秒的时间内提取一条记录。2.5 Firebird嵌入服务器版(Embedded Server) 从Interbase开源衍生出的Firebird,充满了勃勃生机。虽然它的体积比前辈Interbase缩小了几十倍,但功能并无阉割。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。

  Firebird的嵌入版有如下特色:

  1、数据库文件与Firebird网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。

  2、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了IO吞吐量。

  3、完全支持SQL92标准,支持大部分SQL-99标准功能。

  4、丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird。

  5、支持事务、存储过程、触发器等关系数据库的所有特性。

  6、可自己编写扩展函数(UDF)。

2.3 Empress(商业数据库)

  开发阶段特点:

  1. 可嵌入程序,该特性使应用程序和数据库工作于统一地址空间,增强了系统的稳定性,提高了系统的效率。

  2. 确定的响应时间,Empress 可以使数据的响应时间相对一致,使用者可以设定一个超时限制,如果在规定时间内没有完成插入,修改等操作,系统会报错。

  3. 快速的操作Empress 提供了内核级的CAPI,称为MR, 用MR编写的应用程序在执行时不需要解析。另外在MR中加速的机制还包括优秀的加锁控制,内存管理和基于记录数量的选择功能。

  4. 灵活的开发方式,Empress 提供多种开发接口,加快开发进程而无需开发者重新学习开发语言和熟悉开发环境。

  5. 友好的存储方式,Empress 数据库可以放在操作系统支持的任何存储设备中,Empress的表单甚至可以分割放在不同的存储设备中,比如在内存,硬盘和CD-ROM中。

  6. 微型内核结构 Empress 高度单元化, 可根据需要选择需要的单元,从而缩小产品中Empress 数据库所占用的资源。

  7. 宽广的平台支持,Empress 支持多种硬件平台和软件平台, 也可移植到客户要求的硬件平台或操作系统。

  技术优势:

  1. 微型内核结构,占用少量内存空间,特别适合紧凑性的设计

  2.一周7天,每天24小时连续工作,无需任何额外操作免维护

  3. 内核级 CAPI 接口,使运行速度最大化

  4. 高度灵活的SQL接口

  5. 优秀的掉电恢复能力

  6. 强壮的交易和锁存机制

  7. 支持SCSI,RAID,IDE,RAM,CD-RW,DVD-ROM,CF,等存储介质

  8. 支持Unicode 码

  9. 引擎可加载于磁盘和内存

2.4 eXtremeDB

  eXtremeDB特点:

  1. 内存数据库,eXtremeDB将数据以程序直接使用的格式保存在主内存之中,不仅剔除了文件I/O的开销,也剔除了文件系统数据库所需的缓冲和Cache机制。其结果是每个交易一微秒甚至更少的极限速度,相比于类磁盘数据库而言,速度成百上千倍地提高。作为内存数据库,eXtremeDB不仅性能高,而且数据存储的效率也非常高。为了提高性能并方便程序使用,数据在eXtremeDB中不做任何压缩,100M的空间可以保存高达70M以上的有效数据,这是其他数据库所不可想象的。

  2. 混合数据库,eXtremeDB不仅可以建立完全运行在主内存的内存数据库,更可以建立磁盘/内存混合介质的数据库。在eXtremeDB,我们把这种建立在磁盘、内存或磁盘+内存的运行模式称为eXtremeDB Fusion融合数据库。eXtremeDB Fusion兼顾数据管理的实时性与安全性要求,是实时数据管理的台阶性进步。

  3. 嵌入式数据库,eXtremeDB内核以链接库的形式包含在应用程序之中,其开销只有50KB~130KB。无论在嵌入式系统还是在实时系统之中,eXtremeDB都天然地嵌入在应用程序之中,在最终用户毫不知情的情况下工作。eXtremeDB的这种天然嵌入性对实时数据管理至关重要:各个进程都直接访问eXtremeDB数据库,避免了进程间通信,从而剔除了进程间通信的开销和不确定性。同时, eXtremeDB独特的数据格式方便程序直接使用的,剔除了数据复制及数据翻译的开销,缩短了应用程序的代码执行路径。

  4. 由应用定制的API,应用程序对eXtremeDB数据库的操作接口是根据应用数据库设计而自动产生,不仅提升了性能,也剔除了通用接口所必不可少的动态内存分配,从而提高了应用系统的可靠性。定制过程简单方便,由高级语言定制eXtremeDB数据库中的表格、字段、数据类型、事件触发、访问方法等应用特征,通过eXtremeDB预编译器自动产生访问该数据库的C/C++ API接口。

  5. 可预测的数据管理

  eXtremeDB独特的体系结构,保证了数据管理的可预测性。eXtremeDB不仅更快、更小,而且更确定。在80双核CPU的服务器上,eXtremeDB在1TB内存里保存15B条记录;无论记录数多少,eXtremeDB可以在八十分之一微秒的时间内提取一条记录。2.5 Firebird嵌入服务器版(Embedded Server) 从Interbase开源衍生出的Firebird,充满了勃勃生机。虽然它的体积比前辈Interbase缩小了几十倍,但功能并无阉割。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。

  Firebird的嵌入版有如下特色:

  1、数据库文件与Firebird网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。

  2、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了IO吞吐量。

  3、完全支持SQL92标准,支持大部分SQL-99标准功能。

  4、丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird。

  5、支持事务、存储过程、触发器等关系数据库的所有特性。

  6、可自己编写扩展函数(UDF)。

2.6 mSQL介绍

  mSQL(mini SQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿,见下图。 图1mSQL LOGO标志

  mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写。mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API

2.6 mSQL介绍

  mSQL(mini SQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿,见下图。 图1mSQL LOGO标志

  mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写。mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API

posted on 2011-06-21 14:17 ryhan 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/ryhan/archive/2011/06/21/2086007.html

常用的嵌入式数据库的比较相关推荐

  1. mysql 嵌入式 稳定性_常用的嵌入式数据库的比较

    2.1 Berkeley DB 技术特点: 1. Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务.应用它程序员只需要调用一些简单的API就可以完成 ...

  2. 嵌入式数据库 SQLite 浅析

    SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠.SQLite嵌入到使用它的应用程序中,它们共 ...

  3. Java嵌入式数据库H2学习总结(一)——H2数据库入门

    一.H2数据库介绍 常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL.其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的 ...

  4. Linux嵌入式数据库

    文章目录 一.SQLite简介 二.SQLite数据库安装 三.SQLite的命令用法 3.1 创建一个数据库 3.2 创建一张表格 3.3 向创建的表格中插入数据 3.4 查看数据库的记录 3.5 ...

  5. [Linux C编程]嵌入式数据库(二)

    嵌入式数据库   11.1 嵌入式数据库概述 1.  嵌入式数据库介绍     随着电子技术的飞速发展,嵌入式系统中的存储器容量和性能也在迅速提高,这为扩 大嵌入式的应用领域提供了必要的物理基础.展望 ...

  6. 嵌入式数据库BERKELEY DB 之dubbo实战

    berkeley db 时oracle旗下的一款嵌入式数据库...当然,在互联网业界,他并不火,但是它确实很省内存,,对于一些想要替换redis的解决方案--可以考虑..想要学习它.甚至在一些主流的网 ...

  7. 嵌入式数据库 - SQLite

    SQLite,是一个遵守ACID的关联式资料库管理系统(Relational Database Management System, RDBMS),它的全部就是一个C file,被整合在使用者程式中. ...

  8. Spring嵌入式数据库示例

    在本教程中,我们将向您展示一些示例,以在Spring框架中配置嵌入式数据库引擎,例如HSQL,H2和Derby. 使用的技术: 春天4.1.6.RELEASE jUnit 4.1.2 Maven 3 ...

  9. 嵌入式数据库之SQLite 3

    数据库基本概念 数据(Data) 能够输入计算机并能被计算机程序识别和处理的信息集合. 数据库(DataBase) 数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合. 数据库管理系统 ...

最新文章

  1. No package 'libpcre' found
  2. mysql 连接串 utf8_mysql 连接url中useUnicode=truecharacterEncoding=UTF-8 的作用
  3. 计算机二级web题目(6)--动态网页技术概述
  4. Tensor:归并操作
  5. js获取当前url路径
  6. 学习 vi —— “学习清单”式
  7. 网络工程师--网络规划和设计案例分析(5)
  8. 一些常用的正则表达式(个人收集)
  9. 微信客服介绍和使用指引(4.19)
  10. linux 安装pureftp
  11. 抽象代数的代码实现(6)自同构、正规子群、商群
  12. JavaWeb图书馆管理系统
  13. 摔鸡蛋,摔手机问题。
  14. stm32控制步进电机
  15. C++【求逆序数The Number of Inversions】如1234的逆序数为4321;
  16. Kubernetes 多租户简介
  17. 50W闭环控制Boost DC-DC变换器样机设计
  18. 苯酚物理化学性质及用途
  19. Linux做服务器搭建ngrok服务器
  20. ORACLE基本语句

热门文章

  1. C++-------什么是this指针?this指针详解
  2. matlab 电力电子元件对应名称,电力电子与MATLAB应用技术
  3. Tensorflow模型各部分自定义方式
  4. GMM-HMM孤立词识别
  5. 手机通讯录误删怎么恢复?教你解决这个问题
  6. 8.0强行转换后变成了7_如何将网页转换为 PDF,保存在本地备用?
  7. 关于SVPWM马鞍形和相、线电压波形的一些汇总
  8. Unity的Bounds(包围盒)简记
  9. 关于RT thread系统节拍时钟的配置
  10. 《计算机绘图》期末试卷d,计算机绘图试卷