9个另类的数据库值得一看

总的来说,如果您需要数据库,则可以使用其中的一个大名鼎鼎的数据库-MySQL / MariaDB,PostgreSQL,SQLite和MongoDB,然后开始工作。但是有时候,“一刀切”的方法并不能完全适用。时不时地,您的用例会落在bartools之间,您需要寻求更专业的东西。这是九个非常规数据库,它们运行范围从内存分析到键值存储和时间序列系统。
DuckDB
短语“ SQL OLAP系统”通常会让人联想到数据密集型整体或庞大的数据仓库集群的图像。DuckDB对分析数据库而言,SQLlite对MySQL和PostgreSQL而言。它的设计运行目的不是与成熟的OLAP解决方案相同,而是为本地数据集提供快速的内存中分析处理。
EdgeDB
“边缘”是图形数据库中使用的术语,用于 指代高度连接的数据集的两个实体或节点之间的连接或关系(例如,客户与订单之间,或订单与产品之间,等等)。 EdgeDB 使用PostgreSQL核心及其提供的所有属性(例如ACID事务和工业强度可靠性)来构建其制造商称之为 具有强大字段类型和类似SQL的查询语言的 “对象关系数据库”。
因此,EdgeDB结合了类似NoSQL的易用性和即时性,图形数据库的关系建模能力以及SQL的保证和一致性。即使EdgeDB并不是正式的文档数据库,您也可以使用它以这种方式存储数据。您可以使用 GraphQL查询语言 轻松地从EdgeDB检索数据,就像使用本机图形数据库(例如Neo4j)一样。
FoundationDB
由Apple牵头的开源项目FoundationDB 是一个“多模型”数据库,该数据库内部将数据存储为键值对(本质上是NoSQL模型),但可以组织成关系表,图形,文档和许多其他数据结构。ACID事务可确保数据完整性,并且水平扩展和复制都可立即使用。但是,FoundationDB的设计有一些严格的限制:键,值和事务都有严格的大小限制,事务也有严格的时间限制。
HarperDB
HarperDB的目标 是提供一个单一的数据库,用于处理企业中的结构化和非结构化数据,介于FoundationDB之类的多模型数据库与数据仓库或OLAP解决方案之间。通过选择的接口(SQL,NoSQL,Excel等)对已摄取的数据进行重复数据删除,并可以查询。Tableau或Power BI等BI解决方案可以直接与HarperDB集成,而无需提取或处理数据。企业版和社区版均可用。
keyDB
内存键值存储像Redis一样流行和强大,但由于线程性能和易用性不足而受到批评。KeyDB与Redis协议兼容,因此可以用作嵌入式替代。但是KeyDB进行了一些很不错的后台改进,主要是用于网络I / O操作和查询解析的多线程。Redis下一版本的计划Redis 6也包括线程I / O,但KeyDB现在可用。
M3DB
M3DB是Uber内部工程团队的产品, 是一个分布式时间序列数据库,用于Uber指标平台(本质上是Prometheus的数据存储)。M3DB 借鉴了Apache Cassandra和Facebook项目“ Gorilla ”的构想,可以实现任意的时间精度,无序插入以及可配置的复制和读取一致性级别。但是,创建者注意到 M3DB可能不适合所有时间序列数据库用例。例如,M3DB不能在给定的时间范围内(默认值为两个小时)乱序插入数据,并且它主要针对存储和检索64位浮点数而不是其他类型的数据进行了优化。
RediSQL的
该名称暗示着Redis内存键值存储和SQL查询功能的融合,而这正是RediSQL的本质 -特别是嵌入SQLite数据库的Redis模块。数据透明地存储在Redis中,因此Redis处理持久性和内存中处理。每个数据库都与一个Redis密钥相关联,因此您可以在一个Redis实例上拥有多个SQL数据库。对这些数据库的查询是通过标准Redis API传递的标准SQL。您还可以在RediSQL中创建和预编译语句(基本上是存储过程),以加快查询的执行速度。商业版和开源版均可用。
RQLite
SQLite有点奇迹:闪电般的速度和超可靠的可嵌入式开源数据库。每当需要在单用户应用程序中使用数据库时,SQLite都是一个很好的默认选择,但是SQLite实例仅限于一个节点。
RQLite建立在SQLite之上,以创建分布式数据库系统。设置多个节点很容易,并且使用Raft共识算法在这些节点之间自动复制数据。RQLite还提供节点之间的加密和发现服务,该服务使自动添加节点变得容易。但是RQLite也有一些缺点:写入速度比SQLite慢,并且只有确定性的SQL函数(即保证在每个节点上产生相同结果的函数)才可以安全使用。
UmbraDB
如今,大多数高端数据库都具有某种内存中功能,即使它涉及诸如表固定(例如SQL Server)之类的功能。UmbraDB是一个分析数据库,可以替代PostgreSQL进行运行,旨在尽可能使用内存中处理。如果无法做到这一点,它将使用一种新颖的可变大小页面机制从存储中分页数据。长时间运行的查询针对LLVM执行进行了优化。

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。在这里插入图片描述

Guess you like

Origin blog.csdn.net/zhaozihao594/article/details/105419023