數據庫簡單認知

數據庫簡單認知

假設購物網站數據庫主要存儲
1、商品信息表
2、會員信息等其他表


剛開始(我們將1 2全部放在一個DB中,記作 DB_MASTER_A
突然有一天發現DB壞了,備用的DB都沒有,這時候DB_SLAVE_A就應景而生了

讀寫分離

可以將讀頻繁的和慢的切換到DB_SLAVE_A中以減輕DB_MASTER_A的壓力,
比如:商品各類信息
可以配置多個數據源 指向不同的數據庫
sql調用那個數據源 1、可以通過不同路徑配置不同的數據源
2、AOP實現訪問制定的數據源


有一天發現會員的信息是核心模塊不能什麼都能訪問,核心數據,
這個時候就有了垂直切分了 拆一個DB_MASTER_B
以及一個用於讀的DB_SLAVE_B

垂直切分

DB_MASTER_A核心數據 DB_SLAVE_A核心數據讀庫
DB_MASTER_B非核心數據 DB_SLAVE_B非核心數據讀庫
優點:業務清晰,擴展容易


有一天商品的瀏覽日誌記錄數據每天都會產生大量的數據
這個時候水平拆分就應景而生了

水平切分

DB_MASTER_C用於記錄日誌,
但如果把每天的數據都放在一張表裏面,那麼即使有DB_SLAVE_C讀庫那麼查詢也很慢,這時候就有了分表
例如按照每天建立一張表, 表名LOG_20180124,這樣查詢不同時間的日誌就可以去對應的表裏面查了。
分表還可以按照,對編碼取hash然後取餘數分表,
或者定義規則表,每次訪問先看數據那個規則再訪問不同的表


最後的DB

DB_MASTER_A核心數據 DB_SLAVE_A核心數據讀庫
DB_MASTER_B非核心數據 DB_SLAVE_B非核心數據讀庫
DB_MASTER_C日誌數據 DB_SLAVE_C日誌數據讀庫

DB_MASTER_C 表:LOG_20180123表:LOG_20180124表:LOG_20180125
DB_SLAVE_C表:LOG_20180123表:LOG_20180124表:LOG_20180125


歡迎指正交流歡迎指正交流歡迎指正交流歡迎指正交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章