Berkeley DB(BDB)从新发布的版本11gR2开始支持SQL。BDB在性能上的优势详见博文”Oracle Berkeley DB 支持SQL啦”以及更多关于Oracle Berkeley DB SQL的报道。本文将介绍如何在Android上开发平台上编译并运行BDB 11gR2 SQL库(以下简称DBSQL)。
本文介绍在Linux平台上如何编译得到适用于Android的DBSQL库,依本文方法编译得到的BDB库将和Android自带的SQLite库并存,我们称其为side-by-side(并存)模式。在这种模式下,Android平台上已有的应用程序还是基于原始的SQLite库,而我们自己编译的应用程序则链接到DBSQL库以获取更高的存储和并发性能。
阅读全文…
Oracle Berkeley DB将于2010年3月底发布最新版本Oracle Berkeley DB 11g release 2,具体版本号为 11.2.5.0.xx (xx代表具体的patch版本号)。
除了对原有Oracle Berkeley DB的功能进行了一定的改进和增强(比如提升了数据压缩功能、性能优化、C/C++中系统资源自动管理功能等等),本次发布的版本中最引人瞩目的变化是我们引入了一个有用的新特性——Oracle Berkeley DB SQL,简称DBSQL (纠正:将原BDBSQL纠正为DBSQL)。这是自Berkeley DB诞生20多年来第一次支持SQL接口。这无论是对开源社区,还是对嵌入式数据库行业来说,都将是一件喜事。在此也感谢整个Oracle Berkeley DB 研发团队的努力工作和大家的不断支持。
新的版本,新增的SQL接口,值得期待。
阅读全文...
Oracle Berkeley DB 11g release 2即将发布,更多的用户可能会关心其SQL接口的一些具体衡量指标,包括性能、并发性、可扩展性以及客户反馈(包括开源社区和合作伙伴等)。下面是我目前收集到的信息,希望能对大家有用。
内部测试数据(总的指标,包括Berkeley DB以及SQL):
- 性能:
- 约以万计(10s of thousands)的Insert/Update/Delete每秒;
- 约以十万计(100s of thousands)的Select每秒;
- 约比native SQLite快3倍;
- 有些极端测试比SQLite慢,但在一个数量级别。
- 并发性
- 细粒度的锁(Page level locking),保证了更好的并行读/写;
- TPC-B测试显示,多线程的情形下(比单线程)快6-8倍;
- 支持数据库运行中的进行数据压缩(database online compact)。
- 可扩展性
- 单个数据库支持TB级别的数据量;
- 支持多节点集群。
- 数据同步
- 可以通过Oracle Mobile Server 10.3向企业端的大型Oracle数据库进行同步;
- Xcsdasd 的同步客户端。
- SQL功能集
- SQLite3 API, SQL92标准;
- ODBC,JDBC标准;
- 支持Full-Text Search 和R*Tree (Spatial,空间数据库)。
- 运行平台
- Windows Mobile, 2000, XP, 7
- Andriod
- VxWorks
- Linux, Solaris, HP/UX and virtually any *nix variant
注意:由于测试不具有代表性和平台环境等差异,这些指标仅供大家参考。
阅读全文…
随着BerkeleyDB的发展,越来越多原来与传统关系数据库打交道的开发者希望了解、学习BerkeleyDB,并且在开发过程中应用BerkeleyDB。
但是, 与传统的关系数据库不同, BerkeleyDB目前并不支持SQL 查询处理,使用者需要书写代码来实现类似SQL的查询。许多SQL开发者在此过程遇到不少困难。
为了方便SQL开发者学习BerkeleyDB, 我们提供了两篇入门指南,供大家参考。 考虑到有些朋友可能不好访问国外网站,在提供链接的同时, 我们还将这两篇指南上传至开心网BerkeleyDB群组的文件共享区,需要的可以下载阅读(不提供BerkeleyDB XML版本的该指南,因为在BerkeleyDB XML中可以直接使用功能强大的XQuery来查询内容)。
1 对BerkeleyDB
指南地址为: Guide to Oracle Berkeley DB for SQL Developers
开心网文件地址:http://www.kaixin001.com/group/file.php?gid=627784&fid=401933&start=0
2 对BerkeleyDB Java Edition
指南地址为: Performing Queries in Oracle Berkeley DB Java Edition
开心网文件地址为: http://www.kaixin001.com/group/file.php?gid=627784&fid=396176&start=0
前言
众所周知,Berkeley DB 产品家族(包括了 C语言版,Java版和XML数据库)是一套高效率的,可扩展的嵌入式数据库引擎。此处,所谓数据库引擎是指它提供了除SQL处理层以外的所有关系数据库的功能(如事务性(ACID)支持,数据存储,数据恢复等)。那么,您不禁要问,为什么Berkeley DB产品不提供对SQL的支持呢?答案很简单,它可以嵌入到您的应用代码中,在应用代码的地址空间运行,从而达到高效率。
到底有多高效?
在我自己的DELL OptiPlex 745 台式机上(Intel(R) Core(TM)2 CPU 6400, 2G memory, running Ubuntu 7.04 Server x86_64),用自己写的一个单线程的例子程序在9秒内读取了100万条记录,22秒内插入100万的记录。
从关系表的角度看,我插入数据的行定义,大致如下:
f0 INT PRIMARY KEY,
f1 STRING PRIMARY KEY,
id LONG,
one STRING,
two DOUBLE,
three STRING,
zip INT,
city STRING,
state STRING
在Berkeley DB Java 版中的定义如下:
阅读全文…
最近评论