SQL 資料庫-分表 介紹
SQL 資料庫-分表 介紹
分表時機:
根據我的經驗來看,當某張表的數據量已經達到千萬甚至上億,同時日增數據量在2% 以上。
當然這些數字並不是絕對的,最重要的還是對這張表的寫入和查詢都已經影響到正常業務執行,比如查詢速度明顯下降,數據庫整體IO 居高不下等。
分表方法:
▲按照範圍劃分
比如我們可以將某張表的創建時間按照日期劃分存為月表;也可以將某張表的主鍵按照範圍劃分,比如【1~10000】在一張表, 【10001~20000】在一張表,以此類推。
好處是自帶水平擴展,不需要過多干預。
缺點是可能會出現數據不均勻的情況(比如某個月請求暴增)
▲hash+mod(hash%64)
▲Range + Hash
2 thoughts on “SQL 資料庫-分表 介紹”
MySQL(InnoDB)一棵B+樹可以存放多少行數據?(一個資料表的數據筆數上限)
資料來源: https://mp.weixin.qq.com/s/aAR9YVBuhxdffz1xqHK7rQ
InnoDB 一棵B + 樹可以存放多少行數據?這個問題的簡單回答是:約2 千萬
心得:
本文章 才會說 千萬筆的SQL資料 建議就要拆表(分表)
MYSQL 一個/單一表 最大 最多 極限 資料筆數 數據量 約2 千萬
因為使用搜尋的演算法是B+樹