首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 分庫分表常用策略與架構設計全解析

     編輯:MySQL 資料庫相關知識

一、分庫策略

1.1 業務功能垂直分庫

按業務領域劃分,常見 6 大庫:

分類說明命名範例
用戶庫用戶、系統、公司資料db_user, db_system
核心業務庫核心交易、內容資料db_joke, db_order
記憶體庫Memory 引擎,高速快取讀取db_heap
圖片庫圖片索引、資源關聯db_img_index, db_img_res
日誌庫點擊、刷新、登入等行為日誌db_log_click, db_log_login
統計庫聚合統計指標db_stat

1.2 地域水平分庫

全國性業務可按城市拆分:db_log_click_bj、db_log_click_sh,每城市獨立一套完整結構,查詢路由依城市 ID 導向對應庫。

二、分表策略

2.1 按 ID 取模分表

適用於用戶、訂單等均勻分布實體:table_id % N → tb_order_01 ~ tb_order_N。N 預估峰值 3-5 年容量。

2.2 按時間範圍分表

適用於日誌、統計、流水等時序資料:

  • 按月:tb_click_stat_202401、tb_click_stat_202402
  • 按日:tb_login_log_20240115(高頻寫入場景)

配合分區表或定時任務歸檔冷資料。

三、常用高可用架構

核心模式:一主多從 + 讀寫分離

  • 主庫負責寫入、關鍵讀取
  • 從庫負責報表、查詢、備份
  • 中間件(MyCat、ShardingSphere、ProxySQL)實現路由、分片、讀寫分離

MySQL 主從架構圖

四、避坑指南

  • 分片鍵選擇決定查詢路由效能,務必含高頻查詢欄位
  • 跨分片事務極其複雜,業務設計階段應盡量避免
  • 全域唯一 ID 採用雪花演算法或資料庫段號模式
  • 擴容預案:預留分片數、線上遷移工具(gh-ost、pt-online-schema-change)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved