生產(chǎn)背景
生產(chǎn)環(huán)境為主從架構(gòu),每月業(yè)務(wù)都會load幾千萬的數(shù)據(jù)到同一張表,該表的數(shù)據(jù)是按月做了分區(qū)。
現(xiàn)象
Mysql數(shù)據(jù)庫中通過load向一張空表中導(dǎo)入5000萬數(shù)據(jù),總大小25G左右,分成87個文件依次導(dǎo)入,從第一個文件開始保持30秒左右,后續(xù)load時間持續(xù)增長一直到75個文件后每個load的市場基本都在1000s以上,一直到83個文件的幾個小時都無法成功load數(shù)據(jù)到mysql數(shù)據(jù)庫。
Mysql主機資源情況如下所示:
CPU:8
內(nèi)存:32G
Innodb_buffer_pool_size:24G
慢查詢?nèi)罩局?/span>load時長情況如下所示:
Showprocesslist狀態(tài)如下所示:
60多萬數(shù)據(jù)load了一個多小時后直接kill回退了,如下所示:
分析過程
通過表結(jié)構(gòu)查看該表:
通過showcreate table table_nmae核實到該表有個聯(lián)合主鍵和聯(lián)合索引;
然后由于load的原理是跳過SQL解析,直接生成數(shù)據(jù)庫的數(shù)據(jù)文件,導(dǎo)入前關(guān)閉索引,導(dǎo)入完成后更新索引;可以得出該表的索引是影響性能的主要原因。然后通過與前臺業(yè)務(wù)溝通知道業(yè)務(wù)對該表的查詢條件只有兩個字段,然后與業(yè)務(wù)溝通后決定去掉索引重建一個聯(lián)合主鍵保證業(yè)務(wù)的查詢速度。
如下圖所示:
驗證結(jié)果:
表結(jié)構(gòu)優(yōu)化load5000萬數(shù)據(jù)分成68個文件后load時長都在40s以內(nèi),如下圖日志記錄所示:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129952.html
摘要:比較的是兩個對象的內(nèi)容是并發(fā)編程之協(xié)程異步后端掘金引言隨著的盛行,相信大家今年多多少少都聽到了異步編程這個概念。使用進行并發(fā)編程篇二掘金我們今天繼續(xù)深入學(xué)習(xí)。 python 之機器學(xué)習(xí)庫 scikit-learn - 后端 - 掘金一、 加載sklearn中的數(shù)據(jù)集datasets from sklearn import datasets iris = datasets.load_i...
閱讀 1459·2023-01-11 13:20
閱讀 1815·2023-01-11 13:20
閱讀 1267·2023-01-11 13:20
閱讀 2007·2023-01-11 13:20
閱讀 4227·2023-01-11 13:20
閱讀 2885·2023-01-11 13:20
閱讀 1489·2023-01-11 13:20
閱讀 3814·2023-01-11 13:20