25+个可供选择的开源数据库引擎
来源:互联网 发布:淘宝买大麻暗语2016 编辑:程序博客网 时间:2024/05/01 12:31
网上收到一篇关于开源数据的文章,最近想看看一些开源数据库的源代码,所以就索性翻译下了。文章是2年前的。不过看下来很多东西都没有过时,还算可以:
http://www.webresourcesdepot.com/25-alternative-open-source-databases-engines/
大多数的程序员都有自己青睐的数据库,而且一般而言都是有一定的使用经验的。
可能是下面某一种比较流行的数据库:
- MySQL
- PostgreSQL
- MSSQL
- SQLite
- MS Access
或者是其它更简单的存储方式:XML、text等等。
为什么上面那些数据库很受欢迎呢?因为它们被频繁的使用,并且有很好的文档,背后又有很多不错的论坛支持。而且网上也有很多不错的cms能和他们进行很不错的结合。同时很容易使用,并且也有很多主机公司提供服务等等。
但是现在也有很多不错的数据库变的日益流行起来了。甚至很多都优于现在你所使用的数据库。
下面就介绍25+种的数据库,也许你下个项目就会考虑使用他们:
一、MongoDB(http://www.mongodb.org/)
它是一个具有高效率、具有伸缩性、自由模式(schema-free)、面向文档(类似json之类的数据模式)的开源数据库。
现今有很多流行的编程语言,如“PHP,Python,Perl, Ruby, JavaScript, C++”等,都有了相应的驱动。
二、Hypertable(http://www.hypertable.org/)
Hypertable是一个具有高效的分布式的数据存储系统。被用来设计支持那些需要很大效率,伸缩性,及可靠性的应用。它是在Google的BigTable及关注大的伸缩性数据集合而设计出来的。
三、ApacheCouchDB(http://couchdb.apache.org/)
一个面向文档的数据库,可以使用流行的JavaScript在MapReduce(映射简化?)中被查询、索引的。CouchDB提供一个RESTfulJSON接口,能够在任何环境中通过HTTP请求。
四、Neo4j(http://neo4j.org/)
这是一个嵌入式的,基于硬盘并且支持完整的java事务引擎。它是将数据存储在图中,而不是一般意义上的表中。Neo4j具有很不错的伸缩性。它可以在一台机器或者多台组合的方式处理数以万计的节点/关系/属性。
五、Riak(http://riak.basho.com/)
Riak在处理及结合web应用的时候是理想的数据库:
- 分散的Key-value存储
- 理想的映射/简化引擎
- 友好的HTTP/JSON查询接口
六、Oracle Berkeley DB(http://www.oracle.com/technology/products/berkeley-db/index.html)
它是一种可以让开发人员快速的、稳定的、本地持久无需管理员的数据库引擎。Oracle Berkeley DB是一个能够直接连接到你应用里面的库。并且能够让你使用简单的函数调用远程服务而具有更好的工作效能。
七、Apache Cassandra(http://incubator.apache.org/cassandra/)
Cassandra是一个高伸缩性的第二代分布式数据库,很多著名的公司都在使用它,像Facebook、Digg、Twitter、Cisco等等。
它的目标是为存储数据提供一个可持续,具有容错性并且高可用性的环境。
八、Memcached(http://memcached.org/)
memcached是将从数据库中获取,API获取或者页面渲染获取到的数据以键值对方式小块数据(字符串、对象等)存储在内存中的方式存储数据。
一般使用在加速动态web应用,以增加数据库数据缓存。
九、Firebird(http://www.firebirdsql.org/)
Firebird可以运行在Linux上,windows及各种Unix平台上的关系数据库。它提供高性能及支持存储过程及触发器的强有力的语言支持。
十、Redis(http://code.google.com/p/redis/)
redis是使用c语言编写的高级快速的键值对方式存储的数据库。它可以像memcached一样使用,位于传统数据库前端作为缓存,同时也可以直接使用。
它是被很多语言所支持的。像很多流行的项目,如“GitHub、EngineYard”等等都是使用它的。
如现有的PHP客户端Rediska,就可以用来管理Redis数据库。
十一、Hbase(http://hadoop.apache.org/hbase/)
Hbase是一种分布式及(多面向存储?)column-oriented store的,且被称为Hadoop数据库。
此项目的目标是能够处理如“上亿条,成千上万行”数据的非常大的表。
它具有平滑的web服务网关,能够支持xml、Protobuf及二进制数据编码控制。
十二、Keyspace(http://scalien.com/keyspace/)
它是具有持续性复制、容错,以键值对方式运行在window操作系统之上的数据库。
Keyspace通过屏蔽服务器/网络错误及单个的高可用性服务的方式来确保高使用性。
十三、4Store(http://4store.org/)
它是一个数据库引擎并且提供数据库查询及RDF数据。
它是使用ANSI C99语言编写,并设计运行在类似UNIX操作系统之上,提供高可用性、稳定性、及伸缩性。
十四、MariaDB(http://askmonty.org/wiki/index.php/MariaDB)
MariaDB兼容及替换了MysqlServer的数据库。
它基本囊括了大多数的开源存储引擎及Maria存储引擎。
十五、Drizzle(https://launchpad.net/drizzle)
它是属于Mysql的一个分支,主要专注于优化云服务及网络应用的可靠性数据库。
十六、HyperSQL(http://hsqldb.org/)
Hypersql是使用java语言编写的关系型数据库。
它提供一个小型却快速的数据库引擎,可以存储在内存、硬盘,并且提供嵌入式或者服务端方式。
十七、MonetDB(http://monetdb.cwi.nl/)
MonetDB是为了使用数据挖掘、OLAP、GIS、XML查询、文本、多媒体等高性能应用而设计的数据库系统。
十八、Perservere(http://www.persvr.org/)
Perservere是个对象存储引擎及应用服务器(运行在java/Rhino),并且能够提供动态JSON数据存储以便开发基于javascript的网络富客户端应用。
十九、eXist-db(http://exist-db.org/)
eXist-db是使用xml技术构建。依照xml数据模型及高效特征,并且基于XQuery查询索引方式来存储xml数据的。
二十、其它数据库
- Gladius (PHP flat-file database)
- CloudStore
- OpenQM (multivalue database)
- ScarletDME (multivalue database)
- SmallSQL (Java Desktop SQL Database Engine)
- LucidDB
- HyperGraphDB (graph database)
- InfoGrid (graph database)
- Apache Derby
- hamsterdb
- H2 Database(java写的)
- EyeDB
- txtSQL(网站打不开了!)
- db4o(貌似不开发了?)
- Tokyo Cabinet
- Project Voldemort
译者补充:
看完文章,记得应该还有一些其它有名的存储数据库:
http://www.nextdb.net/(为开发者写的关系型数据库)
http://www.erlang.org/doc/apps/mnesia/(Erlang写的?)
http://www.cubrid.org/(貌似有公司维护?)
http://www.raima.com/in-memory-database/(内存数据库)
其实还有很多不错的开源,用不同的语言写的,不过实现方式是一方面,更重要的是里面的设计思想很重要。
- 25+个可供选择的开源数据库引擎
- webgl开源三维引擎的选择
- 浅谈mysql数据库存储引擎的选择
- mysql数据库优化--存储引擎的选择
- MySQL数据库Innodb引擎与MyIASM引擎的选择
- MYSQL-----数据库的操作及存储引擎的选择
- php进阶之数据库设计/ 选择合适的表引擎
- php进阶之数据库设计/ 选择合适的表引擎
- php进阶之数据库设计/ 选择合适的表引擎
- MySQL数据库表引擎的选择 | 黄乔国PHP
- mysql数据库优化--(4)设计 存储引擎的选择
- 选择引擎的类型
- 存储引擎的选择
- MySQL存储引擎--存储引擎的选择
- Mysql 存储引擎的选择
- Mysql存储引擎的选择
- MySQL存储引擎的选择
- MySQL存储引擎的选择
- 在Emacs显示行号
- 修改其他输入法为android 默认输入法
- android错误:The method makeText(Context, CharSequence, int) in the type
- 黑马程序员13——LINQ的常用查询符
- 【数据结构】创建二叉树的方法
- 25+个可供选择的开源数据库引擎
- JAVA中适配器设计模式的简单介绍
- 大小写互换
- varchar char text
- B-tree/B+tree/B*tree
- 解决win7下vc6.0打开添加文件错误 崩溃
- 玛法都是3的幂次方 重量x的物品砝码匹配
- Ubuntu下Hadoop单机部署及分布式集群部署
- [转载]给在读研究生的一封信