结合sql和没有sql数据库是否有意义?

时间:2016-06-27 07:01:22

标签: mysql sql sql-server database nosql

如果我们想要利用两个数据库的优点,那么sql和没有sql数据库都有优点和缺点。我们可以这样做吗?就像复杂的查询一样,我们应该更喜欢sql而不是sql,对于分层数据存储,没有sql数据库比sql数据库更好。因此,如果有一种方法可以将两者简单地结合起来。

1 个答案:

答案 0 :(得分:4)

这完全有道理。至少这是我如何充分利用这两种技术。

NoSQL:快速而简单,但几乎没有结构来强制执行数据约束。

RDBMS:满足所有ACID属性,确保您的数据安全和清洁。但随着流量和数据集规模的增长,性能会迅速下降。

对于大多数项目,您可以负担得起一个胖的,非分布式,不可扩展的关系数据库作为系统中的单点事实。到目前为止,它是保持数据一致性并保持复杂查询成为可能的最简单方法。

只要您的NoSQL层设法拦截指向RDBMS的大部分流量,您就可以负担得起。

使用NoSQL解决方案有很多技巧要做: 缓存非规范化实体(通过ID索引键值存储中预连接表的内容), 托管所有派生数据(如预先计算的推荐矩阵) 托管所有临时的,快速变化的数据(如用户会话,购物车)

有时你可能决定完全跳过RDBMS部分,因为你的数据集特别大,你决定放弃一致性的保证,或者只是,你的数据没有复杂的结构,你很乐意保持简单。

有时候你需要结构并且你拥有庞大的数据集,那么最好的镜头最终是像Cassandra或Hbase一样的柱状存储系统。 但它们是非常复杂的解决方案,维护成本非常高。