海量简单数据不想用SQL?试试高效的嵌入式数据库Berkeley DB JE吧!
如果你有海量的数据,这些数据相对比较简单,且没有复杂的关系,关键的是你不想用像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吧!相关推荐
- Berkeley DB的sql实现
常常有人问 Oracle Berkeley DB " 我如何在 Berkeley DB 中进行 ?" 因此,我们此处将介绍如何在 Oracle Berkeley DB 中实施众多您 ...
- 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询
文章目录 前言 一.SELECT 子句 (一)投影指定的列和投影全部列 (二)AS子句修改查询结构的列标题 例题1 (三)TOP谓词限制结果集中的行数 (四)INTO子句将结果插入新表中 例题2 (五 ...
- 配置数据引擎(BDE、SQL Link)的简单方法 /制做快速按钮条的方法/建立临时表的方法
配置数据引擎(BDE.SQL Link)的简单方法 在 数据库 程序分发时,需要携带数据引擎(BDE.SQL Link),并且在客户端安装完程序后还需要配置数据引擎,如用户名(username).密码 ...
- 药品监管系统架构揭秘:海量溯源数据存储与查询...
前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...
- 药品监管系统架构揭秘:海量溯源数据存储与查询
前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...
- 如何高效存储海量GPS数据
摘要: GPS数据使用越来越广,但如何高性能存储海量GPS数据仍然具有挑战,本文会介绍一种非常适合存储GPS数据的存储系统:阿里云NoSQL数据库TableStore,同时会介绍多个不同场景的技术方案 ...
- Python 批量处理 Excel 数据后,导入 SQL Server
作者 | 老表 来源 | 简说Python 1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完 ...
- 面试官:海量无序数据,寻找第 K 大的数,越快越好
最近在参加阿里云举办的<第三届数据库大赛创新上云性能挑战赛--高性能分析型查询引擎赛道>,传送门: https://tianchi.aliyun.com/competition/entra ...
- 海量无序数据寻找第 K 大的数
前言 最近在参加阿里云举办的<第三届数据库大赛创新上云性能挑战赛--高性能分析型查询引擎赛道>,传送门:https://tianchi.aliyun.com/competition/ent ...
- sql 执行顺序_10个简单步骤,完全理解SQL
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 多年前收藏在笔记中的一篇文章,今天偶然翻出,重读了一遍,依然大有收获.分享出来,大家一 ...
最新文章
- python读取文件读不出来-python文件读取失败怎么处理
- 现在抖音这么火,那么你知道如何用CSS实现抖音字体?
- visual studio 的各个版本下载地址
- C++primer第十一章 关联容器 11.3关联容器操作 11.4 无序容器
- ExtJs2.0学习系列(8)--Ext.FormPanel之第五式(综合篇)
- 从零开始学keras之生成对抗网络GAN
- Alamofire源码解读系列(十二)之请求(Request)
- android 查找资源,Android Studio 查找无用资源
- 如何在Ubuntu上安装MySQL
- 华为交换之间静态路由配置实例
- 英语单词常用前缀(21-40)
- Sphinx语法设置
- Layer Emitter(图层发射器)
- ionic 实现广告图片无限滚动标签介绍
- 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发
- SmartX联手沃云打造全新超融合公有云背后技术解析
- TOF,双目,结构光,激光雷达等传感器及相关技术
- 推荐算法学习笔记--DIN篇
- 传智播客 微金所项目实战
- 百度地图在地图上添加多个点,并调整地图层级及中心点至合适位置大小
热门文章
- minio分布式集群详细搭建、Docker安装部署minio、nginx代理、minio封装工具类
- 成都拓嘉启远:拼多多物流滞留了买家怎样处理
- 解构助贷:信贷机构和资金方的后台系统设计
- 2021年区块链被列为“七大重点产业之一”
- 自荐一本良心Java教程
- php hr管理系统下载,phpHRMS php人力资源管理系统 - 下载 - 搜珍网
- c++的学习——骑车与走路
- 手摸手教你写个chrome插件
- poi导出Excel,打开时提示“发现“…“中的部分内容有问题。是否让我们尽量尝试修复?如果您信任此工作簿的源,清单击“是“”怎么办?
- 加拿大AI分析平台Canvass Analytics获500万美元融资