閱讀474 返回首頁    go 小米 go 小米5


SQL 與 NoSQL 的對比__從 SQL 到 NoSQL_快速入門_表格存儲-阿裏雲

NoSQL 是一個用於描述高擴展高性能的非關係數據庫的術語。NoSQL 數據庫提供的 schemafree 數據模型使應用無需預先定義表結構,更適應業務的多元化發展,且其對超大數據規模和高並發的支持讓 NoSQL 數據庫得到了廣泛的應用。

SQL 與 NoSQL 數據庫對比

關係型數據庫 NoSQL 數據庫
數據模型 關係模型對數據進行了規範化,嚴格定義了表、列、索引以及各個表之間的關係及其他數據庫元素,使一張數據表的所有數據都具有相同的結構。 非關係(NoSQL)數據庫一般不會對表的結構進行嚴格的定義,通常使用分區鍵及鍵值來檢索值、列集或者半結構化數據。
ACID 傳統關係型數據庫支持由 ACID(原子性、一致性、隔離性和持久性)定義的一組屬性。其原子性體現在一個事務“全部成功或者全部失敗”,即完全執行成功或完全不執行某項事務。一致性表示數據庫事務不能破壞關係數據的完整性以及業務邏輯上的一致性。隔離性要求並發事務應分別執行,互不幹擾。持久性指一旦事務提交後,它所做的修改將會永久保存在數據庫上,即使出現宕機也不會丟失。 為了獲得更為靈活的可水平擴展的數據模型, NoSQL 數據庫通常會放棄傳統關係數據庫的部分 ACID 屬性。憑借這些特性,NoSQL 數據庫可用來克服一係列包括性能瓶頸、可擴展性、運營複雜性以及不斷增加的管理和支持成本的問題,這也讓 NoSQL 數據庫成了傳統關係型數據庫在麵臨海量數據及高並發挑戰時的最佳選擇。
性能 性能一般取決於磁盤子係統、數據集大小以及查詢優化、索引和表結構。 寫性能通常受限於磁盤子係統,讀性能則受限於結果集的大小。
擴展 進行縱向擴展最簡單的方式是使用更快的 CPU、磁盤等硬件設備。要獲得跨分布式係統的關係表,就需要增加使用成本及技術複雜度。 能夠利用低成本硬件的分布式集群進行橫向擴展,從而在不增加延遲的前提下提高吞吐量和數據規模。
API 對存儲和檢索數據的請求由符合結構化查詢語言(SQL)的查詢來傳達。這些查詢由關係數據庫係統來解析和執行。 應用開發人員可以使用 NoSQL 數據庫的開放 API 輕鬆進行存儲和檢索數據。通過分區鍵及鍵值,應用可以查找鍵值對、列集或者半結構化數據。

為什麼使用表格存儲?

表格存儲(TableStore)是 NoSQL 數據庫的一種,提供海量 NoSQL 數據存儲錯誤,支持 schemafree 的數據模型,提供單行級別的事務。服務端自動對數據進行分區和負載均衡,讓單表數據從 GBTB 再到 PB,訪問並發從 0百萬都無需繁瑣的擴容流程,寫性能在 TBPB 級數據規模都能保持在單個毫秒,讀性能隻依賴結果數據集,而不受數據量的影響。

所以相比 OLTP(聯機事務處理)場景,表格存儲更適用於 Web 規模級應用程序,包括社交網絡、遊戲、媒體共享和 IoT(物聯網)、日誌監控等場景。

關於表格存儲數據模型信息,請參見數據模型概念

最後更新:2016-11-23 16:04:20

  上一篇:go 節點和實例__產品簡介_表格存儲-阿裏雲
  下一篇:go 訪問數據庫__從 SQL 到 NoSQL_快速入門_表格存儲-阿裏雲