专栏名称: 九章算法
专业的北美IT求职经验分享、技术交流社区,帮助你找到好的IT工作。由硅谷顶尖IT企业工程师维护。提供专业的算法培训/面试咨询,官网 www.jiuzhang.com
目录
相关文章推荐
51好读  ›  专栏  ›  九章算法

NoSQL和SQL的选用

九章算法  · 公众号  · 算法  · 2016-12-01 08:05

正文

NoSQL 有分很多种,其中key-value NoSQL (Redis, MemcacheD, etc) 的选用相对比较清楚些,大多是当后端Data storage的cache层来用。这篇主要想请教 Column Family NoSQL (e.g. Cassandra, Hbase) 和SQL之间的选用 。其中包含一些个人的理解,若有错误的地方烦请不吝指教!


我理解上,Column Family NoSQL的schema和SQL schema大多能够互相作逻辑转换。也就是说,给一个DB,里面有很多table,table里有很多column,然后跟你说我query的型态会长怎样 (等同告诉你app layer的join要怎么做)。我们多半能把这些DB schema转成CF NoSQL的schema。反之亦然。



对single box(单一机器)来说,CF NoSQL能承受的qps比SQL要高;不过在multiple machines的情况下,可对SQL去作sharding & replicas来增加其performace和availability/reliability。这边甚至可混用cosistent hashing的架构来作SQL sharding/replication。也就是说


在多台机器可用的环境下

CF NoSQL 和 SQL 的效能

是可以作到差不多的


事实上,Facebook 开发了Cassandra,但内部用的还是用SQL 居多Lol。 回到问题, 关于选用CF NoSQL vs SQL , 这边分三种cases考虑。


1

Data相关性极低


Data非常不relational (require no join or few joins),这时用SQL 就有点浪费,可能会有不必要的overhead。


2

Data相关性极高






请到「今天看啥」查看全文


推荐文章
中国政府网  ·  活动 | 你在新疆吗?这里正在@国务院
8 年前
中国政府网  ·  活动 | 你在新疆吗?这里正在@国务院
8 年前
冷漫画  ·  为什么我们总是活的这么累?
8 年前
北京吃货小分队  ·  和肉松搭边的东西都好吃吗?
7 年前
财经早餐  ·  简单,真好!(深度好文)
7 年前