SQL 資料庫-分表 介紹

SQL 資料庫-分表 介紹

SQL 資料庫-分表 介紹


資料來源: https://mp.weixin.qq.com/s?__biz=MzAxNjk4ODE4OQ==&mid=2247486061&idx=1&sn=526e5a333dca5a161ab94bf983c89ece&chksm=9bed2b1fac9aa2090f1f481856e2507ea4fdfe53ef3e3bf71d298c209ce772004c91ef43193e&scene=0&xtrack=1&key=025fc9d00514bc5b0b9d7fa26a7d50af2b08b284a3472387b89b468be641e5a97a09b091c83dfe767e0c6a622d340efd1ae4af46edd696970d5957a06a425532920c9e7855c3e40b6f0a4bcc47087f62&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_TW&pass_ticket=krEBQXCP2cjGoYrL1TVwq7kDEdnZClwjhYIAYCgFnnqlKXEwaT0ryW0wHVFjFwn2



分表時機:

    根據我的經驗來看,當某張表的數據量已經達到千萬甚至上億,同時日增數據量在2% 以上。

    當然這些數字並不是絕對的,最重要的還是對這張表的寫入和查詢都已經影響到正常業務執行,比如查詢速度明顯下降,數據庫整體IO 居高不下等。


分表方法:

    ▲按照範圍劃分
        比如我們可以將某張表的創建時間按照日期劃分存為月表;也可以將某張表的主鍵按照範圍劃分,比如【1~10000】在一張表, 【10001~20000】在一張表,以此類推。
        好處是自帶水平擴展,不需要過多干預。

        缺點是可能會出現數據不均勻的情況(比如某個月請求暴增)


    ▲hash+mod(hash%64)
    
    ▲Range + Hash

2 thoughts on “SQL 資料庫-分表 介紹

    1. MYSQL 一個/單一表 最大 最多 極限 資料筆數 數據量 約2 千萬

      因為使用搜尋的演算法是B+樹

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *