1. 程式人生 > >NoSQL資料庫簡介

NoSQL資料庫簡介

平時大家見到或聽到的資料庫型別如MySQL、Oracle RDBMS等大多是關係型資料庫,使用時會寫一些SQL語句來做增刪改查,而今天要說的NoSQL資料庫,顧名思義就是非關係型資料庫,它的出現,就是為了解決關係型資料庫存在的一些問題,可以用NoSQL來進行彌補,現在聽得比較多的NoSQL資料庫有Redis、MongoDB、HBase等。

NoSQL的出現時為了解決關係型資料庫的問題,那麼關係型資料庫有哪些問題呢?

首先就是高併發時的效能問題,當資料庫處於高負荷運轉時,關係型資料庫的效能會遇到瓶頸,這個時候的資料庫操作會變得更加的費時,雖然可以使用memcached解決,但是也會帶來hash不一致等問題。

然後就是擴充套件性,當要給資料增加一個欄位時,需要更改大量的表結構,這變相地增加了維護成本。

還有就是恢復時速度緩慢,當一個關係型資料庫的資料儲存很多長文字或者大資料時,恢復資料的過程會變的更緩慢。

而NoSQL的優勢就在於解決以上問題,首先當資料之間解除關係依賴後,NoSQL的資料庫可以輕易地部署在分散式系統上,這樣通過多臺機器可以分擔單一機器的高負荷,解決高負荷下的效能瓶頸問題。同時,由於資料之間無關係,所以可以隨時增加或刪除欄位。還有,就是因為結構簡單,它的反應能力比關係型資料庫快多了。

因此NoSQL有著高擴充套件性、分散式計算、低成本、架構的靈活性、半結構化資料等特點。比如在儲存微博資訊這種場景下,就是非常適合使用NoSQL資料庫。

當然,在挑選資料庫時,還是得分具體情況,如果你的業務量小,那麼關係型非關係型資料庫都隨便選,挑自己最順手的。而當業務量擴大後,就需要分場景處理了,有的業務可能有複雜的資料關聯,這種就離不開關係型資料庫,而有的地方只是簡單的key-value資料,那麼就果斷地上NoSQL。

作者:果果

文章出處:給產品經理講技術(訂閱號ID:pm_teacher)