如果你有海量的数据,这些数据相对比较简单,且没有复杂的关系,关键的是你不想用像MySQL和SQLServer那样的数据库,你只想在程序中处理这些数据,那么,Berkeley DB也许是一个非常好的选择!

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

Berkeley DB在06年被 Oracle 收购了,现在我们在 Oracle 网站上会看到: BerkeleyDB、BerkeleyDB XML 和 BerkeleyDB JAVA Edition 这个三个东东。简单的说最开始 BerkeleyDB 是只有 C 语言版本的,但是 JAVA 也可以使用,只不过需要通过 JNI 调用,效率可能有点影响。后来出了 JAVA Edition ,用纯 JAVA 实现了一遍,也就是我们看到的 BerkeleyDB JAVA Edition (简称 JE )。

JE是一个通用的事务保护的,100%纯Java(JE不作任何JNI调用)编写的嵌入式数据库。因此,它为Java开发人员提供了安全高效的对任意数据的存储和管理。

JE 适合于管理海量的,简单的数据。其中的记录都以简单的 键值对保存,即 key/value对。由于它操作简单,效率较高,因此受到了广泛的好评。

JE官网:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html

一些特性:

1. 大型数据库的支持:它支持从1到数百万级的数据量,数据库的大小限制基本上受限于你的硬件支持。
2. 多线程,多进程支持:JE读写操作都可以是多线程,使用记录级锁定为线程应用程序提供高并发性。此外,JE使用死锁超时检测的机制来确保不会有两个线程无限期的死锁。JE允许多个进程访问同一个DB,但在这种情况下, Berkeley 只允许一个线程进行写操作,读操作随意。
3. 事务:原子性,可恢复,隔离性。
4. 内存Cache:为了减少IO操作提高性能,将数据暂存在内存里面。
5. 索引。

简单读写操作

海量简单数据不想用SQL?试试高效的嵌入式数据库Berkeley DB JE吧!相关推荐

  1. Berkeley DB的sql实现

    常常有人问 Oracle Berkeley DB " 我如何在 Berkeley DB 中进行 ?" 因此,我们此处将介绍如何在 Oracle Berkeley DB 中实施众多您 ...

  2. 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

    文章目录 前言 一.SELECT 子句 (一)投影指定的列和投影全部列 (二)AS子句修改查询结构的列标题 例题1 (三)TOP谓词限制结果集中的行数 (四)INTO子句将结果插入新表中 例题2 (五 ...

  3. 配置数据引擎(BDE、SQL Link)的简单方法 /制做快速按钮条的方法/建立临时表的方法

    配置数据引擎(BDE.SQL Link)的简单方法 在 数据库 程序分发时,需要携带数据引擎(BDE.SQL Link),并且在客户端安装完程序后还需要配置数据引擎,如用户名(username).密码 ...

  4. 药品监管系统架构揭秘:海量溯源数据存储与查询...

    前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...

  5. 药品监管系统架构揭秘:海量溯源数据存储与查询

    前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...

  6. 如何高效存储海量GPS数据

    摘要: GPS数据使用越来越广,但如何高性能存储海量GPS数据仍然具有挑战,本文会介绍一种非常适合存储GPS数据的存储系统:阿里云NoSQL数据库TableStore,同时会介绍多个不同场景的技术方案 ...

  7. Python 批量处理 Excel 数据后,导入 SQL Server

    作者 | 老表 来源 | 简说Python 1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完 ...

  8. 面试官:海量无序数据,寻找第 K 大的数,越快越好

    最近在参加阿里云举办的<第三届数据库大赛创新上云性能挑战赛--高性能分析型查询引擎赛道>,传送门: https://tianchi.aliyun.com/competition/entra ...

  9. 海量无序数据寻找第 K 大的数

    前言 最近在参加阿里云举办的<第三届数据库大赛创新上云性能挑战赛--高性能分析型查询引擎赛道>,传送门:https://tianchi.aliyun.com/competition/ent ...

  10. sql 执行顺序_10个简单步骤,完全理解SQL

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一 ...

最新文章

  1. python读取文件读不出来-python文件读取失败怎么处理
  2. 现在抖音这么火,那么你知道如何用CSS实现抖音字体?
  3. visual studio 的各个版本下载地址
  4. C++primer第十一章 关联容器 11.3关联容器操作 11.4 无序容器
  5. ExtJs2.0学习系列(8)--Ext.FormPanel之第五式(综合篇)
  6. 从零开始学keras之生成对抗网络GAN
  7. Alamofire源码解读系列(十二)之请求(Request)
  8. android 查找资源,Android Studio 查找无用资源
  9. 如何在Ubuntu上安装MySQL
  10. 华为交换之间静态路由配置实例
  11. 英语单词常用前缀(21-40)
  12. Sphinx语法设置
  13. Layer Emitter(图层发射器)
  14. ionic 实现广告图片无限滚动标签介绍
  15. 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发
  16. SmartX联手沃云打造全新超融合公有云背后技术解析
  17. TOF,双目,结构光,激光雷达等传感器及相关技术
  18. 推荐算法学习笔记--DIN篇
  19. 传智播客 微金所项目实战
  20. 百度地图在地图上添加多个点,并调整地图层级及中心点至合适位置大小

热门文章

  1. minio分布式集群详细搭建、Docker安装部署minio、nginx代理、minio封装工具类
  2. 成都拓嘉启远:拼多多物流滞留了买家怎样处理
  3. 解构助贷:信贷机构和资金方的后台系统设计
  4. 2021年区块链被列为“七大重点产业之一”
  5. 自荐一本良心Java教程
  6. php hr管理系统下载,phpHRMS php人力资源管理系统 - 下载 - 搜珍网
  7. c++的学习——骑车与走路
  8. 手摸手教你写个chrome插件
  9. poi导出Excel,打开时提示“发现“…“中的部分内容有问题。是否让我们尽量尝试修复?如果您信任此工作簿的源,清单击“是“”怎么办?
  10. 加拿大AI分析平台Canvass Analytics获500万美元融资