Database 選擇 - t104360088/InternRecord GitHub Wiki

SQL特性

  • 需要事先定義資料型態 (有Schema)
  • 屬於關聯式資料庫
  • 採用ACID理論來設計

SQL因為要讓資料儲存跟取得容易,所以會用「關聯」的方式把一些東西切開來 因此可以做出較複雜的操作,例如:Join、Union,但也因其關聯特性 在擴展上較為困難,在資料處理上採用FIFO,因此讀寫速度較慢 成本較高,通常使用在資料量異動較少的情況

NoSQL特性

  • 不需事先定義資料型態 (無Schema)
  • 屬於分散式資料庫
  • 採用CAP理論來設計

NoSQL通常採用Key-Value資料模式來解決龐大資料的異動困難,擴展上容易 除鍵值模式外,其他形式包含記憶體模式、圖學模式和文件模式等種類 但因其為分散式設計,會將資料分散複製到不同節點中,所以只保證最後資料會達到一致 每個節點各自也能異動資料,然後再彼此同步,同步過程就會有時間落差 若同時讀取不同節點上的資料,會發生資料不一致的情況,所以存在資料遺失的風險 且無法使用過於複雜的資料處理,成本較低,通常使用在資料量異動較頻繁的情況

參考資料

閃開!讓專業的來:SQL 與 NoSQL 關於NoSQL與SQL的區別 了解NoSQL不可不知的5項觀念 淺談常見的NoSQL技術方案和選型 快速認識4類主流NoSQL資料庫 SQL教學 維基百科