目錄
-
- 一、SQL
- 二、NoSQL
- 三、小文件存儲
- 四、大文件存儲
本文來源:極客時間vip課程筆記
一、SQL
-
SQL 即我們通常所說的關系數據。前幾年 NoSQL 火了一陣子,很多人都理解為 NoSQL 是完全拋棄關系數據,全部采用非關系型數據。但經過幾年的試驗后,大家發現關系數據不可能完全被拋棄,NoSQL 不是 No SQL,而是 Not Only SQL,即 NoSQL 是 SQL 的補充。
-
所以互聯網行業也必須依賴關系數據,考慮到 Oracle 太貴,還需要專人維護,一般情況下互聯網行業都是用 MySQL、PostgreSQL 這類開源數據庫。這類數據庫的特點是開源免費,拿來就用;但缺點是性能相比商業數據庫要差一些。
-
隨著互聯網業務的發展,性能要求越來越高,必然要面對一個問題:將數據拆分到多個數據庫實例才能滿足業務的性能需求(其實 Oracle 也一樣,只是時間早晚的問題)。
-
數據庫拆分滿足了性能的要求,但帶來了復雜度的問題:數據如何拆分、數據如何組合?這個復雜度的問題解決起來并不容易,如果每個業務都去實現一遍,重復造輪子將導致投入浪費、效率降低,業務開發想快都快不起來。
-
所以互聯網公司流行的做法是業務發展到一定階段后,就會將這部分功能獨立成中間件。
例如百度的 DBProxy、淘寶的 TDDL。不過這部分的技術要求很高,將分庫分表做到自動化和平臺化,不是一件容易的事情,所以一般是規模很大的公司才會自己做。
中小公司建議使用開源方案,例如 MySQL 官方推薦的 MySQL Rou