垂直切分、水平切分
1、垂直分庫,解決庫中表太多的問題。
2、垂直分表,解決表中列太多的問題。例如 商品表 包含 產地、二維碼 、時間、價格、各個列。分爲不同的小表。
水平切分, 大數據表拆分爲小表
水平拆分後還是要考慮小標太多 導致庫中表太多的問題,要綜合考慮是否需要垂直分庫。
拆分策略
垂直拆分(er分片) 相關聯的表放在一個庫
水平拆分
範圍拆分 一直性hash 根據某一個屬性取模 例如 userId
日期拆分
拆分後帶來的問題
1.垮庫join的問題
1.設計的時候 考慮應用層的JOIN的問題
2. 通過服務層去做調用
A服務 B 服務
先從A 查結果 然後RPC 傳給B 再做拼接
全局表
1、數據變更比較小的基於全局應用
做冗餘數據(空間換時間的方法)
垮分片數據排序分頁
1.應用層做分配
唯一主鍵問題
數據庫主從同步的原理
主從同步的 延時問題: 心跳檢測 檢查 同步時間差。 應用層使用redis 寫入master時 取的時候 先去redis取 緩存失效再去數據庫取 從而導致數據同步時間差。