SQL vs NoSQL 選型

★★★★Draft

FromGrokkingSystem Design Interview

📚 From the Books

SQL vs NoSQL 選型ConceptStorage Abstractions

沒有一體適用的資料庫。選型的核心是四個軸:schema 要不要固定、怎麼擴展、要不要 ACID、查詢多複雜。多數真實系統其實兩種都用。

🧠 Core Ideas

TIP

一句話分野:SQL=固定 schema + 垂直擴展 + ACIDNoSQL=動態 schema + 水平擴展 + 換效能可用性。先問「我的資料形狀穩不穩、要不要強交易保證」,答案就浮出來了。

⚖️ Tradeoffs

四個決策軸
  • Schema:SQL 要先定好、改動可能要停機;NoSQL 隨時加欄、每筆不必一致。
  • 擴展:SQL 多靠垂直擴展(加硬體、貴、有上限);NoSQL 原生水平擴展、商用硬體就能加機器、常自動分散資料。
  • 可靠性:SQL 多為 ACID,交易安全好;NoSQL 多犧牲 ACID 換效能與擴展。
  • 查詢:SQL 語言統一強大;NoSQL 各家語法不一,聚焦文件/集合。
什麼時候選誰
  • 選 SQL:需要 ACID(金融、電商交易);資料結構穩定、不追求極端規模。
  • 選 NoSQL:海量非結構化資料;要善用雲端、跨資料中心水平擴展;快速迭代、schema 常變又不能停機。
  • 實務上常混用:交易核心放 SQL,session / 快取 / 事件流 / 大數據放 NoSQL。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading