我有個大的 SQL 文件要回放,需要馬上做,但又怕壓死業務,怎麽辦?
先來建壹個測試庫:
塞壹些數據進去:
看看我們填充數據的成果:
使用 mysqldump 導出壹份數據:
現在我們假設要把這個 dump 文件,回放到壹個數據庫中,並且現在數據庫正在承擔很重的業務,我們不希望業務受到太大影響。
先來看看如果直接回放 dump 文件,會發生什麽?
我們看到 MySQL 的 cpu 會彪起來,
我們換壹個方式來回放 dump:
看看 CPU 壓力:
可以看到 CPU 已經非常冷靜,並且緩慢的處理數據。
小貼士:pv 工具既可以用於顯示文件流的進度,也可以用於文件流的限速。在本實驗中,我們用 PV 來限制 SQL 文件發到 MySQL client 的速度,從而限制 SQL 的回放速度,達到不影響其他業務的效果。