Mysql大型SQL檔案快速恢復方案分享

2022-09-25 04:06:10 字數 1256 閱讀 8084

前言

在使用mysql資料庫的過程中,經常需要使用到備份和恢復資料庫,最簡單便捷的方法便是通過匯出sql資料檔案和匯入sql資料檔案來完成備份和恢復,但是隨著專案的增長,資料量越來越大,每次恢復就成了一件很頭疼的事情。

當我最近一次拉下專案中的5gb大小的資料庫到本地進行恢復時,竟然需要耗時40-50分鐘,想著日後的資料擴增,資料量越來越大,恢復成本也越來越高,於是便查閱了一些資料,可以通過以下設定來提高你的恢復效率.

1.更改備份引數

首先我們需要在備份資料庫的時候,可以通過更改引數來提高我們的恢復效率.

mysqldump --extended-insert

mysqldump的--extended-insert引數表示批量插入,會將多個insert語句合併成乙個語句,與沒有開啟-extended-insert的備份匯入效率相差3-4倍.

使用--extended-insert=false匯出的sql檔案資料是這樣的,每行一條insert語句,執行效率非常低下

使用--extended-insert=true匯出的表如下圖這種,乙個很長的insert語句,會進行批量插入。

2.調整myszwrhhql快速插入引數

如果你的資料庫儲存引擎是myisam引數的話,可以將此引數設定到zwrhh512m或256m,myisam會使用一種特殊的樹狀快取來做出更快的批量插入。

相關文件:

該值預設是8m = 8388608byte

檢視插入緩衝區大小

show variables like '%bulk%';

設定插入緩衝區大小(全域性)

set global bulk_insert_buffer_size =1024*1024*512;

設定插入緩衝區大小(session)

set bulk_insert_buffer_size =1024*1024*256;

如果需要設定mysql重新啟動時,依然保留該值,需要將這段配置新增了my.cnf

[mysqld]

bulk_insert_buffer_size = 256m

3.關閉檢查項

對於innodb引擎中,我們可以關閉一些系統檢查項來實現更快的插入的方案.

//關閉自動提交

set autocommit=0;

//關閉唯一檢查

set unique_checks = 0;

//關閉外來鍵檢查

set foreign_key_checks=0;

//備份的時候開啟--extended-insert引數

mysql匯入大型sql檔案時注意事項

原文 大型sql檔案,需要在my.ini windows 或者my.cnf linux 中設定或修改引數 max allowed packet 4096m wait timeout 2880000interactive timeout 2880000 引數說明 字面上意思就已經很好理解了 max a...

華為雲rds備份檔案本地mysql還原恢復

恢復資料過程中,您可通過命令檢視任務程序 ps ef grep mysql tar xvf qpress 11 linux x64.tar mv qpress usr bin 注意 請確保xtrabackup為2.4.9及其以上版本,否則後續步驟會報錯。rpm ivh percona xtrabac...

mysql匯入sql檔案

例如 我的使用者名稱是root 密碼是123 sql指令碼存在c盤 名字為test.sql 資料庫為test 有兩種方法可以執行指令碼 1 開啟cmd輸入以下命令 不需要轉換目錄 mysql u root p123 進入mysql 後mysql use test mysql source c tes...