告訴你 SQL 資料庫與 NoSQL 資料庫的區別

2021-08-21 21:39:37 字數 1479 閱讀 7449

簡單來說 sql 資料庫和 nosql 資料庫有著共同的目標:儲存資料,但儲存的方式不同

每個表規定了固定的字段,各個欄位有固定的型別

而 nosql 使用類 json 的鍵值對儲存資料(還有使用陣列、圖形的),

乙個記錄或者說乙個文件可以是這樣的格式

key 1:

也可以是這樣的格式

key 2:

,

]}

所有的記錄組成乙個集合,例如 redis

關係型資料庫中,在把資料儲存進去前,你需要做很多任務作,如設定資料庫字符集,定義主鍵,設定各個欄位的型別,設定索引等等,這些就是關係型資料庫的模式,這些模式的限制,讓表結構有著嚴格的約束。

而非關係型資料庫的資料可以隨時寫入,不需要去事先定好各種條條框框,也正因為如此,nosql 資料庫更適合於那些不能夠確定資料需求的的工程專案。

例如我們擁有兩表 

使用者表:

購物表:

通常情況下,我們不會在購物表中重複每個 user 的所有資訊,而是會新增 user_id 字段關聯兩個表,以最小化資料的冗餘。 

這叫做資料庫的規範化

規範化的設計方法很好地優化了資料冗餘,但是在 nosql 中一般不會這麼設計,我們會直接為每一條購物資料都添上使用者的所有資訊:

},}

目的是更快地查詢,當然,如果需要頻繁更新使用者資訊,自然會使效率下降

sql 資料庫中提供了事務操作,將兩條或者多條更新操作結合成乙個事務(要麼全部執行成功要麼都失敗)。

而 nosql 資料庫則缺乏傳統的事務機制,不過很多 nosql 資料庫也有各自的方式去處理這一類問題

sql 資料庫使用傳統的 sql 語言來進行增刪查改,而 nosql 資料庫則使用各自的語法來進行操作。

比如查詢,對比 sql 的select * from table;, mongodb 有db.table.find(),hbase 有scan table

通常情況下,由於 nosql 非規範化,資料模型的簡單等原因 nosql 比 sql 語言更快,當然,乙個設計得好的 sql 資料庫的表現一定會比乙個設計得不好的 nosql 資料庫效能好很多

適合使用 sql 開發的專案:

適合使用 nosql 開發的專案:

當然現在很多專案都使用 sql 和 nosql 相結合的方式,各自發揮其優點。

>>>>閱讀全文

告訴你 SQL 資料庫與 NoSQL 資料庫的區別

簡單來說 sql 資料庫和 nosql 資料庫有著共同的目標 儲存資料,但儲存的方式不同 每個表規定了固定的字段,各個欄位有固定的型別 而 nosql 使用類 json 的鍵值對儲存資料 還有使用陣列 圖形的 乙個記錄或者說乙個文件可以是這樣的格式 key 1 也可以是這樣的格式 key 2 所有的...

資料庫分類 SQL資料庫 NoSQL資料庫

一 資料庫產品 二.sql資料庫 sql 是所有關係型資料庫的公共語言 關係型資料庫,是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的資料,我們平常使用的資料庫,像mysql,oracle,sql server等都是傳統的關係型資料庫。關係模型指的就是二維 模型,而乙個...

sql資料庫和nosql資料庫的區別

sql資料庫雖然教程多,支援也很強大,但是隨著網際網路應用的出現,sql資料庫遇到設計上的弊端,sql對錶的定義使得資料橫向擴充套件困難,而且sql資料庫的很多特性也沒有用武之地,例如及時訪問不是必要的,也沒有特別多的事物需求,這些特性都在消耗著sql資料庫的效能 因此nosql資料庫出現 sql資...