現代很少有應用程式不用到資料庫,資料庫有分兩種 NoSQL 與 SQL ,這兩者各有什麼優缺點?要如何選擇? 當面試官問你這些問題時要如何回答?在 YouTube 上看到一個影片,詳細交代了這些問題
筆記
這影片中有提到大數據要考慮的 3 個 V
- Variety 資料的多樣性
- Velocity 資料的成長速度
- Volume 資料的容量
影片中提到如果資料的 3 個 V 都是呈現快速成長時 ( 例如 Faceboo/Twitter ) 則考慮使用 NoSQL ,NoSQL 本身內建 Sharding 適合用了做水平擴展,SQL 伺服器也可以有 Sharding 但是必須自己手動管理
影片中舉了一個案例,例如電影網站,平均一個月只上幾部電影,就算開放留言,資料量成長並沒有 Twitter/Facebook 這樣龐大,用一般的 SQL 伺服器就可以了
NoSQL 並不是沒有缺點,因為資料散佈在不同的伺服器,就無法使用 JOIN 功能,必須透過 Application Layer 自己處理 JOIN 功能
影片的下方有蠻多留言討論,有興趣可以看一下那些討論,也可以獲得不少想法
最後我想到一個問題 – 如果大部分時間的資料量成長不大,都集中在某些時段,資料量突然暴增這種狀況該是要用 SQL 還是 NoSQL ?有興趣可到這邊討論
相關資訊
SQL
NoSQL
★ 歡迎使用 App / Email | Telegram 訂閱 網站更新★