我们公司的产品中用到了伯克利db数据库,闲着没事干,学习了一下:

1:Berkeley DB是一个开源的文件数据库,嵌入式数据库系统。介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。

Berkeley DB (DB)是一个高性能的,嵌入数据库编程库,和C语言,C++,Java,Perl,Python,PHP,Tcl以及其他很多语言都有绑定。Berkeley DB可以保存任意类型的键/值对,而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据,广泛 用于各种操作系统包括大多数Unix类操作系统和Windows操作系统以及 实时操作系统 。

2: 值得注意的是DB是嵌入式数据库系统,而不是常见的关系/对象型数据库,对SQL语言不支持(目前已经支持SQL),也不提供数据库常见的高级功能,如 存储过程 , 触发器 等。

3

Berkeley DB以拥有比Microsoft SQL Server和Oracle等 数据库系统而言更简单的体系结构而著称。例如,它不支持网络访问—程序通过进程内的API访问数据库。 他不支持其他的数据库查询语言,最新的版本已支持sql,不支持表结构和数据列。 访问数据库的程序自主决定数据如何储存在记录里,Berkeley DB不对记录里的数据进行任何包装,每个记录有且只有两部分:键、值,所以在Berkeley DB的背景下通常用key/data pair指代一个记录。记录和它的键都可以达到4G字节的长度。
尽管架构很简单,Berkeley DB却支持很多高级的数据库特性,比如ACID 数据库事务处理,细粒度锁,XA接口,热备份以及同步复制。
4

HASH算法
DB中实际使用的是扩展线性HASH算法(extended linear hashing),可以根据HASH表的增长进行适当的调整。关键字可以为任意的数据结构。
5:

Berkeley DB包含有与某些经典Unix数据库编程库兼容的接口,包括:dbm,ndbm和hsearch。
Berkeley DB的核心数据结构
数据库环境句柄DB_ENV:每个DB_ENV相当于一个数据库,它包含了数据库全局信息,比如 缓冲区大小、以及对 事务、 日志、锁等子系统的全局配置信息。
数据库句柄结构DB:每个DB相当于关系数据库的一个表,其中存储了很多key/data pair。DB句柄代表了一个包含了若干描述数据库表属性的参数,如数据库访问方法类型、逻辑页面大小、数据库名称等;同时,DB结构中包含了大量的数据库处理 函数指针,大多数形式为 (*dosomething)(DB *, arg1, arg2, …)。其中最重要的有open,close,put,get等函数。
数据库记录结构DBT:DB中的记录由 关键字和数据构成,关键字和数据都用结构DBT表示。实际上完全可以把关键字看成特殊的数据。结构中最重要的两个字段是 void * data和u_int32_t size,分别对应数据本身和数据的长度。
数据库 游标结构DBC:游标(cursor)是数据库应用中常见概念,其本质上就是一个关于特定记录的 遍历器。注意到DB支持多重记录(duplicate records),即多条记录有相同关键字,在对多重记录的处理中,使用游标是最容易的方式。
数据库环境句柄结构DB_ENV:环境在DB中属于高级特性,本质上看,环境是多个数据库的包装器。当一个或多个数据库在环境中打开后,环境可以为这些数据库提供多种子系统服务,例如多线/进程处理支持、 事务处理支持、高性能支持、日志恢复支持等。

Berkeley DB相关推荐

  1. berkeley db mysql_BDB:源自 Berkeley DB,事务型数据库

    数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和删除数据操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎还可以获得特定的功能. ...

  2. Berkeley DB的数据存储结构——哈希表(Hash Table)、B树(BTree)、队列(Queue)、记录号(Recno)...

    Berkeley DB的数据存储结构 BDB支持四种数据存储结构及相应算法,官方称为访问方法(Access Method),分别是哈希表(Hash Table).B树(BTree).队列(Queue) ...

  3. Java那些事之Berkeley DB

    最近一直在使用java,随着使用时间的加长,对java也有了更深入的了解.从今天开始,我会写一些关于java的专题内容,希望大家喜欢,也希望各位多多讨论指正. 这一次先介绍一下Berkeley DB的 ...

  4. Berkeley DB——Database

    Berkeley DB--Database Development Environment Windows XP Profession,Visual Studio C++ 2005 Concept 1 ...

  5. Berkeley DB——Records

    Berkeley DB--Records 本文主要讲述如何操作Berkeley DB的记录--Records的Create.Retrieve.Update和Delete. Key/Data Pair ...

  6. 直接使用Berkeley DB的Memory Pool 功能

    本文是一个示例,展示了如何直接使用BerkeleyDB的memory pool功能. BerkeleyDB对外开放了它的memory pool, logging,mutex 和 lock子系统,应用程 ...

  7. Berkeley DB基础教程

    一.Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的.简单的数据.如Google使用其来保存账户信息,Heritrix用其来保存froniter. (2 ...

  8. BDB (Berkeley DB)数据库简单介绍(转载)

    近期要使用DBD,于是搜了下相关的资料,先贴个科普性的吧: 转自http://www.javaeye.com/topic/202990 DB综述 DB最初开发的目的是以新的HASH訪问算法来取代旧的h ...

  9. BDB (Berkeley DB)简要数据库(转载)

    使用最近DBD.然后搜了下相关资料,首先公布的是一门科学: 转会http://www.javaeye.com/topic/202990 DB综述 DB最初开发的目的是以新的HASH訪问算法来取代旧的h ...

  10. Berkeley DB作用

    Berkeley DB是一个嵌入式数据库,这里的嵌入式和嵌入式系统无关,嵌入式数据库的意思是不需要通过JDBC访问数据库,也不单独启动进程来管理数据,Berkeley DB运行在网络爬虫所在的进程空间 ...

最新文章

  1. Mysql 755和750权限,chmod 755 究竟是什么鬼?
  2. Linux用Openssl为Apache签发证书
  3. idea用token登陆github_用python和她一起唐诗宋词
  4. Java中List接口重要实现类一ArrayList
  5. 解决方案和项目的关系_项目经理入门知识系列之《项目团队的职责分工》
  6. 用例子来区分4种文法
  7. 吴恩达深度学习——深度学习概论
  8. Xamarin.Android开发实践(六)
  9. 5G商业化进程提速 运营商推进网络智能化转型
  10. Jmeter报文体包含过大附件导致请求报文发送失败的解决办法
  11. C#.net拖拽实现获得文件路径
  12. 红烛电子教鞭 2.5.1.0 中文绿色版
  13. 【最新】python爬取全国主要城市经纬度
  14. 技术分享 | 排序(filesort)详细解析(8000 字长文)
  15. 定时任务-动态定时任务(springboot+org.quartz)
  16. aero peek_如何在Windows中禁用Aero Peek
  17. 语音增强算法的概述[转]
  18. java 启动方式 java -jar xx.jar
  19. 矿产行业商业供应链协同系统解决方案:构建数智化供应链平台,保障矿产资源安全供应
  20. 微信 for BlackBerry

热门文章

  1. 成神结局量子计算机雏惨,成神之日:消失数月之后雏再次出现,不过形象却差点让人认不出...
  2. JEPF快速发开平台
  3. Elasticsearch的节点与分片
  4. 职场关注:挣百万年薪的15种能力
  5. 时间戳和时间字符串互转
  6. 桂林三金,吃不到中药股红利
  7. Gridmanager
  8. python和nltk自然语言处理百度云盘下载_把python自然语言处理的nltk_data打包到360云盘,然后共享给朋友们...
  9. div布局系列 - 两端对齐的方法
  10. Jitpack使用指南:maven-publish如虎,jitpack如翼 【安卓Java组件化模块化】【更多gradle技巧】