在目前的企業IT架構中,系統管理員以及DBA都會考慮使用NoSQL資料庫來解決RDBMS所不能解決的問題,特別是互聯網行業。 傳統的關聯式資料庫主要以表(table)的形式來存儲資料,而無法應對非結構化資料的挑戰。 在進行資料標準化的過程中,關聯式資料庫性能遭遇了瓶頸。
NoSQL顧名思義就是Not-Only SQL,它可以作為關聯式資料庫的良好補充。 在TechTarget資料庫之前的報導中,我們也對NoSQL資料庫的應用場景做了詳細的介紹。 NoSQL不像傳統的關聯式資料庫,其種類繁多,且各有各的優勢和缺點,對於DBA來說如何區分彼此的不同是一件比較頭痛的工作。 在本文中,我們就將進一步為您接受關於NoSQL資料庫的分類以及各自的優缺點。
NoSQL資料庫的四大家族
鍵值(Key-Value)存儲資料庫
這一類資料庫主要會使用到一個雜湊表,這個表中有一個特定的鍵和一個指標指向特定的資料。 Key/value模型對於IT系統來說的優勢在於簡單、易部署。 但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。
列存儲資料庫
這部分資料庫通常是用來應對分散式存儲的海量資料。 鍵仍然存在,但是它們的特點是指向了多個列。 這些列是由列家族來安排的。
文檔型資料庫
文檔型資料庫的靈感是來自于Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。 該類型的資料模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。 文檔型資料庫可以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。 而且文檔型資料庫比鍵值資料庫的查詢效率更高。
圖形(Graph)資料庫
圖形結構的資料庫同其他行列以及剛性結構的SQL資料庫不同,它是使用靈活的圖形模型,並且能夠擴展到多個伺服器上。 NoSQL資料庫沒有標準的查詢語言(SQL),因此進行資料庫查詢需要制定資料模型。 許多NoSQL資料庫都有REST式的資料介面或者查詢API。
因此,我們總結NoSQL資料庫在以下的這幾種情況下比較適用:1、資料模型比較簡單;2、需要靈活性更強的IT系統;3、對資料庫性能要求較高;4、不需要高度的資料一致性;5、對於給定key,比較容易映射複雜值的環境。
(責任編輯:呂光)