日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

NoSQL和SQL怎么选用?

發布時間:2024/9/3 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NoSQL和SQL怎么选用? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介: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 的效能,是可以做到差不多的。

1、Data相關性極低
Data非常不relational (require no join or few joins),這時用SQL 就有點浪費,可能會有不必要的overhead。

2、Data相關性極高
這時用CF NoSQL可能要處理大量的de-normalization,雖然disk便宜,但duplicated data太多的話可能也會爆容量。而且update時要處理de-norm data間consistency的問題。

e.g. 一個data可能屬于(row_key_A, column_key_A)同時也屬于(row_key_B, column_key_B),這樣更新這data時就要同時更新這兩個row。感覺這種情況選用SQL會較佳。

3、Data相關性一般
去除以上兩個極端cases,通常data是介于中間。這時候感覺:

用 CF NoSQL 和 SQL是差不多的。

用SQL的話,developer要自己處理sharding/replication。不過相對而言SQL expert的數量遠大于Cassandra/Hbase expert, SQL communities也相對成熟許多。

這樣看來,面試時若面臨到CF NoSQL和SQL的選用時,感覺還是選SQL比較安穩點

用CF NoSQL感覺會被質疑的點比較多,而且其schema有時不是這么好設計。

原文鏈接:https://developer.aliyun.com/article/771235?

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的NoSQL和SQL怎么选用?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。