35个非主流开源数据库(1)

标签: 数据库 | 发表时间:2012-04-16 18:14 | 作者:macaque1101
出处:http://hi.baidu.com/injava

几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种:

   MySQL

  PostgreSQL

  MSSQL

  SQLite

  MS Access

   或是更简单的XML,文本文件等。这些数据库有优秀的文档,背后有强大的社区支持,大部分流行的CMS都使用了其中之一或多个,它们都易于使用,大多数 托管服务供应商都提供了相应的产品,因此它们的使用量很多,名气也很大。但除了这些主流的数据库外,还有很多其它非主流数据库存在,其中有一些也开始受到 人们的高度重视,下面我们就一起来看看吧,注意本文只介绍开源数据库,说不定在下一个项目中,你就有尝试它们的冲动。

   1、 MongoDB

  MongoDB是一款开源,高性能,可扩展,无模式,面向文档(与JSON类似的数据模式)的数据库,它为时下 最流行的编程语言提供了驱动,如PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自动分片,跨LAN或WAN 扩展,采用Key/Value方式存储数据。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用。世界上最大的单词收录网站Wordnik就从MySQL转向了MongoDB。

   2、 Hypertable

  Hypertable是一款高性能分布式数据存储系统,旨在为应用程序提供最好的性能,可扩展性和可靠性,它建 立在Google的BigTable之上,主要面向大规模数据集应用,其目标是要成为世界上最好的大规模并发高性能数据库平台。百度目前也使用了 Hypertable,也是它的赞助商。

   3、Apache CouchDB

  Apache CouchDB是一款面向文档的数据库,可以使用JavaScript通过MapReduce方法进行查询和索引,它提供了一个RESTful JSON API,因此可以在任何环境中通过HTTP访问,CouchDB内置了Web管理控制台,支持通过浏览器管理数据库。CouchDB使用Erlang编 写,Erlang是一种健壮的函数式编程语言,非常适合于构建并发的分布式系统,Erlang的设计非常灵活,其可伸缩性与可扩展性都非常棒。


    4、Neo4j

  Neo4j是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图像中而不是表中存储数据。 Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图像,可以扩展到多台机器并行运行。相对于关系数据库来说,图形数据库善 于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询――在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。 Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图形进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍 历速度与构成图形的数据量没有任何关系。此外,Neo4j还提供了非常快的图形算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都 是无法实现的。

  5、Riak

  Riak是一款非常适合于Web应用程序的数据库,它提供了去中心化的Key/Value存储,灵活的map /reduce引擎和友好的HTTP/JSON查询接口。它是一个真正的容错系统,不会出现单点故障,在Riak世界中,没有哪台机器是特殊的或属核心 服务器 ,它们都是对等的。

   6、Oracle Berkeley DB

  Oracle Berkeley DB是一系列开源的嵌入式数据库,使开发人员能够将一个快速、可伸缩、具有工业级别的可靠性和可用性的事务处理数据库引擎结合进他们的应用程序中。 Berkeley DB最先由伯克利加州大学为了移除受到AT&T限制的程式码,从BSD 4.3到4.4时所改写的软件。Berkeley DB运行在大多数的 操作系统 中,例如大多数的UNIX系统, 和windows系统,以及实时 操作系统 。

   7、 Apache Cassandra

  Cassandra是一款高可扩展性第二代分布式数据库,属于混合型的非关系的数据库,类似于Google的 BigTable,支持的数据结构非常松散,类似于JSON的BJSON格式,因此可以存储比较复杂的数据类型。Cassandra最初由 Facebook开发,后转变成了开源项目。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。Facebook,Digg,Twitter和Cisco等大型网站都使用了Cassandra。


    8、Memcached

  Memcached是开源的分布式cache系统,现在很多的大型web应用程序包括 facebook,youtube,wikipedia,yahoo等等都在使用memcached来支持他们每天数亿级的页面访问。通过把cache层 与他们的web架构集成,他们的应用程序在提高了性能的同时,还大大降低了数据库的负载。

  Memcached处理的原子是每一个 key/value对,key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个 二级散列,通过一张大hash表来维护。

   9、Firebird

  Firebird是一个关系数据库,可以运行在Linux,Windows和各种Unix平台 上,Firebird相对MySQL和PostgreSQL来说比较小,这也使其可以称得上是理想的嵌入式数据库,可用于与其它应用程序 服务器 和应用程序捆绑。Firebird具有大部分成熟数据库所具有的功能, 比如支持存储过程、SQL兼容等。

   10、Redis

  Redis是一款快速的Key/Value数据库引擎,它在保持键值数据库简单快捷特点的同时,又吸收了部分关 系数据库的优点,从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和 Sets类型(无序)的数据,而且还能完成排序(SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支 持主从复制等功能。Redis使用C语言编写,可以想memcached那样使用,放在传统数据库的前端,它支持许多编程语言,受到许多流行的项目使用, 如GitHub和Engine Yard,有一个用PHP编写的客户端叫做Rediska,专门来管理Redis数据库。

   11、 HBase

  HBase是一个分布式,面向列存储的数据库引擎,也可以叫做Hadoop数据库,因为它是Hadoop的子项 目,HBase的目标是托管数十亿行,数百万列的大表,它提供了一个REST风格的Web服务器 网关 ,支持XML,Protobuf和二进制数据编码选项。

 


   12、Keyspace

  Keyspace 是一家叫做 Scalien 的创业公司开发的高可靠 key/value 存储系统,Keyspace 强调的技术点是高可靠性,有以下一些特点:

  Key/Value存储:一个 key/value 数据存储系统,只支持一些基本操作,如:SET(key, value) 和 GET(key) 等;

  分布式:多台机器(nodes) 同时存储数据和状态,彼此交换消息来保持数据一致,可视为一个完整的存储系统。为了更可靠,Keyspace 推荐使用奇数个 nodes,比如:3,5,7等;

  数据一致:所有机器上的数据都是同步更新的、不用担心得到不一致的结果,Keyspace 使用著名的 Paxos 分布式算法;

  冗余:所有机器(nodes)保存相同的数据,整个系统的存储能力取决于单台机器(node)的 能力;

  容错:如果有少数 nodes 出错,比如重启、当机、断网、网络丢包等各种 fault/fail 都不影响整个系统的运行;

   高可靠性:容错、冗余等保证了 Keyspace 的可靠性。

   13、4store

  4store是一个容纳RDF数据的数据库存储和查询引擎,它使用ANSI C99编写,可在类Unix系统上运行,提供一个高性能,可扩展和稳定的平台。4store专门为无共享集群进行优化,最大可支持32节点集群,导入性能 最大可以达到120kT/s,它的查询性能也相当出众。

   14、MariaDB

  MariaDB是一个向后兼容的,旨在替换MySQL数据库的MySQL分支,它包括所有主要的开源存储引擎, 另外也开发了属于自己的Maria存储引擎。MariaDB是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发的免费开源数据库服务器,与 MySQL 相比较,MariaDB 更强的地方在于:

  Maria 存储引擎

   PBXT 存储引擎

  XtraDB 存储引擎

  FederatedX 存储引擎

  更快的复制查询处理

   线程池

  更少的警告和bug

  运行速度更快

  更多的 Extensions (More index parts, new startup options etc)

  更好的功能测试

  数据表消除

  慢 查询日志的扩展统计

  支持对 Unicode 的排序


   15、Drizzle

  Drizzle是从MySQL衍生出来的一个数据库,但它的目的不是要取代MySQL,它的宗旨是构建一个“更 精练、更轻量、更快速”的MySQL版本,它的扩展性和易用性与MySQL相当,但为了提高性能和扩展性,它从原来的核心系统里移除了部分功能。 Drizzle是一种为云和网络程序进行了特别优化的数据库,它是为在现代多 CPU /多核架构上实现大规模并发而设计的。

   16、 HyperSQL

  HyperSQL是用Java编写的一款SQL关系数据库引擎,它的核心完全是多线程的,支持双向锁和 MVCC(多版本并发控制),几乎完整支持ANSI-92 SQL,支持常见数据类型,最新版本增加了对BLOB和CLOB数据的支持,最高支持达64T的数据量。同时,HyperSQL也是一个不错的嵌入式数据 库。

   17、MonetDB

  MonetDB是一个高性能数据库引擎,主要用在数据挖掘,OLAP,GIS,XML Query,文本和多媒体检索等领域。MonetDB对DBMS的各个层都进行创新设计,如基于垂直分片的存储层,为现代 CPU 优化的查询执行架构,自动和自助调整索引,运行时查询优化,以及模块化 的软件架构。MonetDB/SQL是MonetDB提供的关系数据库解决方案,MonetDB/XQuery是XML数据库解决方案,MonetDB Server是MonetDB的多模型数据库服务器。

   18、Persevere

  Persevere 是针对Javascript设计的基于REST的JSON数据库,分布式计算,持久对象映射的框架,提供独立的web服务器,主要用于设计富客户端应用, 可以用在任何框架和客户端上。Persevere Server是一个基于Java/Rhino的对象存储引擎,在交互式的客户端JavaScript环境中提供持久性的JSON数据格式。

  

阅读全文
类别: 数据库  查看评论

相关 [非主流 开源 数据库] 推荐:

35个非主流开源数据库(1)

- - inJava
几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种:.    或是更简单的XML,文本文件等. 这些数据库有优秀的文档,背后有强大的社区支持,大部分流行的CMS都使用了其中之一或多个,它们都易于使用,大多数 托管服务供应商都提供了相应的产品,因此它们的使用量很多,名气也很大.

Facebook开源闪存数据库RocksDB

- - IT经理网
本周四Facebook宣布开源其嵌入式数据库 RocksDB(一种嵌入式Key-value存储系统),该数据库能够充分利用闪存的性能,大大提升应用服务器的速度. Facebook用RocksDB来驱动一些面向用户的应用,这些应用由于需要通过网络访问外部存储而性能低下,此外Facebook还用RocksDB来解决固态硬盘IO利用率不高相关的一些问题.

开源地理位置数据库:tile38

- - 标点符
Tile38是地理定位数据存储,空间索引和实时地理围栏. 它支持多种对象类型,包括纬度/经度点,边界框,XYZ平铺,Geohashes和GeoJSON. 地理空间索引,支持类似附近、包含、相交... 通过 webhooks或 pub/sub channels实现实时地理围栏. 支持多种对象: lat/lon,  bbox,  Geohash,  GeoJSON,  QuadKey, and  XYZ tile..

开源网站分析软件Piwik的数据库表结构

- sun - 标点符
Piwik是一套基于Php+MySQL技术构建,能够与Google Analytics相媲美的开源网站访问统计系统,前身是phpMyVisites. Piwik可以给你详细的统计信息,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易.

年度技术回顾之数据库、NoSQL、开源软件

- kezhuw - DBA Notes
本文已经首发于InfoQ中文站,版权所有,原文为年度技术回顾之数据库、NoSQL、开源软件,如需转载,请务必附带本声明,谢谢. InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.NET、 Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon、免费迷你书下载如《架构师》等.

开源网站分析软件Piwik的数据库表结构

- Michael - IT技术博客大学习
标签:  Piwik  表结构.     Piwik是一套基于Php+MySQL技术构建,能够与Google Analytics相媲美的开源网站访问统计系统,前身是phpMyVisites. Piwik可以给你详细的统计信息,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易.

淘宝自主研发的海量数据库OceanBase开源

- beralee - cnBeta.COM
OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成. 在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入.

11个面向文档的开源NoSQL数据库

- - CSDN博客数据库推荐文章
面向文档的数据库主要设计用来存储、获取以及管理基于文档的或者叫半结构化的数据,也属于 NoSQL 数据库的一种类别. 数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用 JSON、XML 等多种格式存储. MongoDB是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富、最像关系数据库的.

走进Affinity:VMware开源数据库Affinity介绍

- - NoSQLFan
本文由 VMware中国研发的工程师林文(@ 傍槐闲士)提供,林文目前从事 affinity数据库的相关工作. 本文是一篇affinity的背景及特性介绍文章,后续林文的affinity系列文章还会在NoSQLFan陆续发布,对affinity感兴趣的同学可以多关注. 原文地址: http://blog.csdn.net/woody107/article/details/7348690.

标准MySQL数据库外的5个开源兼容方案

- - 博客园_新闻
MySQL 是最受欢迎的免费开源应用之一,它是成千上万个网站的数据库骨干. 然而,许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都要有自己的专长,这些需求以及 Oracle 对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支. 另外,为了满足特殊业务的需要,MySQL 有时候不能完全胜任,这就需要开发出新的解决方案.