开源数据库软件有哪些
开源数据库软件有1、MySQL;2、MariaDB;3、PostgreSQL;4、Redis;5、SQLite;6、Neo4j;7、OrientDB;8、CouchDB;9、FirebirdSQL;10、BigchainDB;11、MongoDB;12、Hadoop (HBase)。其中MySQL支持多种存储引擎、集群、全文索引、支持多线程、充分利用CPU资源、支持多用户等其它许多非常专业的功能。
1、MySQL
MySQL是一个开源的关系型数据库管理系统,为甲骨文公司产品。支持多种存储引擎、集群、全文索引、支持多线程、充分利用CPU资源、支持多用户等其它许多非常专业的功能。
MySQL由于性能高、成本低、可靠性好已经成为最流行的开源数据库,并且被广泛应用在Web应用程序以及其它中小型项目上。从WordPress 到Movable Type都把MySQL作为默认的数据库。此外,自甲骨文收购MySQL以后,有将MySQL闭源的潜在风险,因此社区采用分支的方式避开这种风险,开发并运营着完全兼容MySQL的MariaDB数据库。
2、MariaDB
MariaDB是MySQL的一个分支,所以兼容性几乎是1:1。MariaDB的开发人员也喜欢在其分支附近保持兼容性。因此,MariaDB可以作为MySQL的“直接”替代品,几乎没有任何后果,并且可以毫不费力地迁移到它。
但MariaDB也有作为开源数据库的一些独特功能:
- MariaDB使用Aria存储引擎来处理复杂的SQL查询。这使数据库的速度超过了MySQL。
- 可以对表格列使用动态行,这有助于提高灵活性和适应性。
- 有一些用于特定用例的专用存储引擎,在MySQL中是找不到的。例如,实现分布式存储、分布式事务等等。
3、PostgreSQL
PostgreSQL可以简称为“postgres”,是一款对象-关系型数据库管理系统,PostgreSQL采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式。PostgreSQL拥有非常完美的驱动,并支持标准的ANSI-SQL和扩展功能,在许多方面都要超过MySQL。
PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是少数支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的少数一种自由软件的数据库管理系统。许多云服务提供商比如Heroku等,都用PostgreSQL作为他们的RDBMS存储。
缺点方面,PostgreSQL还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能等提高数据库性能的机制等。
4、Redis
Redis是一个开源、支持网络、基于内存、键值对存储数据库。开发者无需存储数字和字符串即可dump整个哈希值、列表、集合以及其它复杂的结果存储,此外,Redis还提供复制/同步和持久化等功能。
Redis是一个高性能的键值对数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
5、SQLite
SQLite是一个提供数据库引擎的小型轻量级库。整个数据库由一个<code>.sqlite</code>文件组成,该文件可以存在于系统的任何位置。您无需安装任何服务器软件或连接到其他服务即可使用SQLite。
尽管数据库是一个如此轻量级的工具,但您仍然可以拥有数百TB的数据库大小,最大行大小为GB。即使文件大小如此之大,SQLite仍然很快。
SQLite作为数据库有很多很好的用例:
- 简单应用程序的开发人员会喜欢SQLite,因为它是一个严肃的、直接的解决方案。
- 它非常适合没有(或不能)系统管理员或开发人员在场的物联网 (IoT) 应用程序。
- SQLite适用于低流量网站,因为这些需求很简单。
- 虽然我们在这里主要讨论Web应用程序,但桌面应用程序也可以使用SQLite来保持高性能。
6、Neo4j
Neo4j是一款开源的高性能NoSQL图数据库,它使用图(graph)相关的概念来描述数据模型,把 数据保存为图中的节点以及节点之间的关系。支持ACID事务(原子性、独立性、持久性和一致性)。
在现实中,很多数据都是用图来表达的,比如社交网络中人与人的关系、地图数据、或是基因信息等等。Neo4j中最基本的概念是节点(node)和关系(relationship)。节点表示实体,在两个节点之间,可以有不同的关系。
7、OrientDB
我们说“几乎”没有其他基于图形的开源数据库,但这为其他人留下了一些空间。OrientDB就是其中之一。尽管多年来它的所有权发生了变化,但它仍然是为您的Web应用程序实现基于图形的数据库的绝佳方式。
OrientDB可以将它的手转向多种模型,例如对象、图形、文档和键值。尽管如此,它仍被归类为NoSQL解决方案,并且与记录有直接连接,因此其核心是基于图形的数据库。
OrientDB的主要好处是它的灵活性和可扩展性。与Neo4j非常相似,它速度很快,但对性能有一些警告。但是,OrientDB更加灵活,并且正在开发其他索引机制来帮助用户。
您会发现OrientDB在相同的应用范围内与Neo4j一样强大——例如,社交网络、银行和金融、交通管理等。
8、CouchDB
CouchDB就像SQLite一样,这是一个小型、不显眼的开源数据库,是无数项目的工作室解决方案。
这个开源数据库的重点是可靠性。这个想法是数据位于多个分布式节点的集群中。其中一些节点将处于脱机状态,它们将“持有”数据,直到它们再次联机。然后将整个数据馈送到集群并分发到网络中的其他节点。为了进一步解释,想象一个包含移动设备上生成的数据的数据库。无法保证此设备将访问在线连接,因此数据将保留在那里,直到其“节点”再次在线。
作为一个为可靠性而设计的离线优先开源数据库,CouchDB是符合要求的应用程序的名列前茅者。
9、FirebirdSQL
Firebird是一个跨平台的关系数据库,用C和C++开发。目前能够运行在Windows、linux和各种Unix操作系统上,可以对存储过程和触发器提供高性能和强大的语言支持。
Firebird既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。
10、BigchainDB
BigchainDB采用分布式数据库并融合了区块链技术来增强体验。像区块链的关键元素一样,BigchainDB使用不变性、去中心化和“多资产”来帮助您管理数据。
您可以根据丰富的权限设置、自定义资产等来自定义您的网络。该数据库也可以与分散设置一起使用,尽管以安全或隐私为重点的应用程序提供了优异用例。它可以为您以隐私为中心的Web应用程序添加许多独特的方面,因此它可以与您的中央开源数据库一起工作以增强您的配置。
11、MongoDB
MongoDB是一款开源、面向文档并且也是当下人气最旺的NoSQL数据库,它也是一款介于关系数据库和非关系数据库之间的产品。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。还具有高性能、易部署、易使用,存储数据非常方便等特点。
12、Hadoop (HBase)
Hadoop (HBase)是一个开源的、基于列存储模型的分布式数据库,它是Apache Hadoop项目的一部分,开发语言为Java。
HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库。
HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,用以存储大规模结构化数据。HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。