PostgreSQL听起来比较陌生,其实这种关系数据库解决方案自年以来一直存在,并且是Ruby,Python,Go等社区中的首选。
将PostgreSQL作为下一个项目的数据库解决方案,您绝不会失望(国内邮储银行开始全面使用PostgreSQL作为oracle的替代品,腾讯正在大量使用PostgreSQL)。市面上已经有大量不错的SQL客户端可用于连接到PostgreSQL数据库进行管理和开发。
与其他关系数据库(特别是MySQL)相比,PostgreSQL具有一些引人入胜的功能,例如:
数组,Range(范围),UUID,地理位置等的内置数据类型。
支持文档存储(JSON样式),XML以及key-value存储(Hstore)。
同步、异步复制
引入了使用其它程序语言编写函数的能力,可在PL,Perl,Python等中编写脚本
全文搜索
何时使用PostgreSQL
如果您正在开始一个新项目,之前被MySQL事务锁定打败过,那么现在是考虑PostgreSQL的好时机。
如果需要部分NoSQL功能用于混合数据模型,则PostgreSQL也具有明显的优势。由于天然支持文档和key-value存储,因此您无需去寻找,安装,学习和维护另一个数据库解决方案。
2、MariaDBMariaDB是由开发MySQL的同一人创建的,以替代MySQL。奇怪不?在年MySQL被甲骨文接管之后(通过收购SunMicrosystems,这也是甲骨文控制Java的方式),MySQL的追随者们开始了一个新的开源项目MariaDB。
MariaDB是使用与MySQL相同的代码库创建。显而易见,MariaDB可以用作MySQL的完全替代品。从MySQL迁移到MariaDB基本上做到零成本。不过切记,从MariaDB返回MySQL是不可能的,这可能导致永久性数据损坏!
尽管MariaDB本质上是MySQL的克隆,但事实上并非如此。两者之间的差异一直在增长。采用MariaDB必须是您经过深思熟虑的决定。MariaDB中有很多新特性:
真正的自由和开放:由于没有单个公司实体控制MariaDB,无需担心突然而来的掠夺性许可。
满足特定需求的存储引擎。例如,用于分布式事务的Spider引擎;ColumnStore用于海量数据仓库;ColumnStore引擎,用于并行,分布式存储;
与MySQL相比,速度有所提高,尤其是Aria存储引擎可处理复杂的查询。
更好的复制功能(多源复制)
JSON数据格式支持
虚拟列。对表的每一行都可以有一个“虚拟列”,该列可以用于保存一个对象的不同属性,每个属性在各行之间可以完全不同,“虚拟列”的个数和内容完全有应用程序来控制和解释。
动态列。动态列允许在一个表中每个行可以存储不同的列的集合。
何时使用MariaDB
如果您想真正地替代MySQL,希望保持创新并且不打算再次返回MySQL,则应该使用MariaDB。例如可以在MariaDB中使用新的存储引擎来补充项目中现有的关系数据模型。
3、CockroachDBCockroachDB背后的团队似乎由受虐狂组成。有了这样的产品名称"蟑螂"。
估计“蟑螂”的逻辑是无论发生什么事蟑螂都能生存繁殖。CockroachDB背后的团队(由前Google工程师组成)在使用传统SQL解决方案时感到局限性。因为从历史上看,SQL解决方案应该托管在一台机器上(数据不是那么大)。长期以来,没有运行SQL的数据库集群。即使MySQL,PostgreSQL和MariaDB中使用各种复制技术来实现数据库集群。事实上,通过复制功能来实现集群,使用起来还是复杂。
CoackroachDB希望改变这一点,为SQL世界带来轻松的分片,集群和高可用性。
何时使用CockroachDB
如果您一直使用SQL并且对MongoDB的扩展功能有所了解,那么您会喜欢CockroachDB。CockroachDB可以快速设置集群,对集群进行查询,我们终于不需要使用数据库中间件这种临时产物来实现集群数据库了。
4、Neo4j近十年来最重要的发展之一就是关联数据。几乎事物都相互关联。社交网络是一个很好的例子。使用SQL乃至文档数据库构建类似的数据模型就是一场噩梦。这些解决方案的理想数据结构是图形,它是完全不同的结构。您可以考虑Neo4j这样的图形数据库。
图形数据库本身是独特的,Neo4j几乎是使用图形唯一选择。它具有的任何功能都是独一无二的。
支持事务应用程序和图形分析。
数据转换能力,可将大型表格数据提取为图形。
用于查询图形数据库的专用查询语言(Cypher)
可视化和发现功能
如果您需要数据之间基于图形的关系,则需要Neo4j。
5、MongoDBMongoDB是第一个在技术行业引起轰动的非关系数据库,并且占据相当大的