溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

優化系列 | 游戲數據表拆分優化經典案例

發布時間:2020-06-06 19:09:10 來源:網絡 閱讀:411 作者:葉金榮 欄目:數據庫

1. 目的
通過對比測試,分析某數據表tabC拆分方案前后性能對比,確定拆分方案的可行性。


2. 方法
對拆分方案前后兩種類型進行對比測試。
同時,每次測試中采用兩種更新方式:
1. 和原來類似,對數據表所有字段的更新分多次
2. 對數據表所有字段的更新一次性完成


3. 環境
本次測試采用線上實際數據導入。tabC表共有132萬行記錄,全表共100G。
將所有字段重新組合,確保每個分表的實際行長度不高于8KB,拆分成3個子表,大小分別是:
tabC_1.ibd 796M
tabC_2.ibd 10.2G
tabC_3.ibd 8.4G

之后再進行全表隨機更新,每輪測試都在腳本中并發調用存儲過程來完成,最大10個并發進程。
每次測試之前都重啟mysqld,且無其他額外壓力,確保環境公平。


4. 結果


全表分表
多次update02:56:4900:16:06
一次update00:54:0200:08:56


5. 結論
從測試結果很明顯看到,分表后的并發更新效率遠比比分表前高,而且,如果對tblC表的多次更新能合并到一起的話,更能獲得很大提高。

因此建議:
1. 對類似tblC表的其他表實施同樣的拆分方案;
2. 對數據表的更新最好一次性完成,而不是多個字段分多次,將一個事務變成多個事務;


分表原則:
1. 從原表中分離出text字段;
2. 將分離出的text字段重新組合,確保每個分表的實際行長度不高于8KB;
3. 可能的話,不使用text,實際長度小于255的,直接轉成varchar;


--------------------------------------分割線--------------------------------------

知數堂 (http://zhishuedu.com)培訓是由資深MySQL專家葉金榮、吳炳錫聯合推出的專業優質培訓品牌,主要有MySQL DBA實戰優化和Python運維開發課程,是業內最有良心、最有品質的培訓課程。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女