濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Mysql大型SQL文件快速恢復(fù)方案分享

Mysql大型SQL文件快速恢復(fù)方案分享

熱門標(biāo)簽:真人語(yǔ)音電話機(jī)器人 銅陵防封電銷卡 怎么在地圖標(biāo)注位置生成圖片 400電話可以免費(fèi)申請(qǐng)嗎 騰訊地圖標(biāo)注提升 悟空科技電話機(jī)器人 電銷卡外呼系統(tǒng)供應(yīng)商 美國(guó)反騷擾電話機(jī)器人 福建外呼系統(tǒng)定制化

前言

在使用Mysql數(shù)據(jù)庫(kù)的過程中,經(jīng)常需要使用到備份和恢復(fù)數(shù)據(jù)庫(kù),最簡(jiǎn)單便捷的方法便是通過導(dǎo)出SQL數(shù)據(jù)文件和導(dǎo)入SQL數(shù)據(jù)文件來(lái)完成備份和恢復(fù),但是隨著項(xiàng)目的增長(zhǎng),數(shù)據(jù)量越來(lái)越大,每次恢復(fù)就成了一件很頭疼的事情。

當(dāng)我最近一次拉下項(xiàng)目中的5GB大小的數(shù)據(jù)庫(kù)到本地進(jìn)行恢復(fù)時(shí),竟然需要耗時(shí)40-50分鐘,想著日后的數(shù)據(jù)擴(kuò)增,數(shù)據(jù)量越來(lái)越大,恢復(fù)成本也越來(lái)越高,于是便查閱了一些資料,可以通過以下設(shè)置來(lái)提高你的恢復(fù)效率.

1.更改備份參數(shù)

首先我們需要在備份數(shù)據(jù)庫(kù)的時(shí)候,可以通過更改參數(shù)來(lái)提高我們的恢復(fù)效率.

mysqldump --extended-insert

mysqldump的--extended-insert參數(shù)表示批量插入,會(huì)將多個(gè)insert語(yǔ)句合并成一個(gè)語(yǔ)句,與沒有開啟-extended-insert的備份導(dǎo)入效率相差3-4倍.

使用--extended-insert=false導(dǎo)出的sql文件數(shù)據(jù)是這樣的,每行一條insert語(yǔ)句,執(zhí)行效率非常低下

使用--extended-insert=true導(dǎo)出的表如下圖這種,一個(gè)很長(zhǎng)的insert語(yǔ)句,會(huì)進(jìn)行批量插入。

2.調(diào)整MYSQL快速插入?yún)?shù)

如果你的數(shù)據(jù)庫(kù)儲(chǔ)存引擎是MYISAM參數(shù)的話,可以將此參數(shù)設(shè)置到512M或256M,MyISAM會(huì)使用一種特殊的樹狀緩存來(lái)做出更快的批量插入。

相關(guān)文檔:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_bulk_insert_buffer_size

該值默認(rèn)是8M = 8388608byte

查看插入緩沖區(qū)大小

SHOW VARIABLES LIKE '%bulk%';

設(shè)置插入緩沖區(qū)大小(全局)

SET GLOBAL bulk_insert_buffer_size =1024*1024*512;

設(shè)置插入緩沖區(qū)大小(session)

SET bulk_insert_buffer_size =1024*1024*256;

如果需要設(shè)置Mysql重新啟動(dòng)時(shí),依然保留該值,需要將這段配置添加了my.cnf

[mysqld]
bulk_insert_buffer_size = 256M

3.關(guān)閉檢查項(xiàng)

對(duì)于Innodb引擎中,我們可以關(guān)閉一些系統(tǒng)檢查項(xiàng)來(lái)實(shí)現(xiàn)更快的插入的方案.

//關(guān)閉自動(dòng)提交
SET autocommit=0;

//關(guān)閉唯一檢查
set unique_checks = 0;

//關(guān)閉外鍵檢查
SET foreign_key_checks=0;

//備份的時(shí)候開啟--extended-insert參數(shù)

關(guān)于Innodb批量數(shù)據(jù)加載相關(guān)文檔:https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-bulk-data-loading.html

4.實(shí)踐

做好以上優(yōu)化后,你的Mysql恢復(fù)效率瞬間會(huì)提升一個(gè)檔次,在沒做以上參數(shù)優(yōu)化時(shí),每次恢復(fù)數(shù)據(jù)庫(kù)都需要耗費(fèi)40分鐘的時(shí)間,設(shè)置后只需要16分鐘左右,我的數(shù)據(jù)庫(kù)文件容量在5GB左右.

以上就這些,途觀有更好的方案和建議的話,希望各位同學(xué)一起探討,Happy Coding。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • MySQL5.7 mysqldump備份與恢復(fù)的實(shí)現(xiàn)
  • MySQL 兩種恢復(fù)數(shù)據(jù)的方法
  • MySQL單表恢復(fù)的步驟
  • MySQL數(shù)據(jù)庫(kù)備份恢復(fù)實(shí)現(xiàn)代碼
  • MySQL使用mysqldump+binlog完整恢復(fù)被刪除的數(shù)據(jù)庫(kù)原理解析
  • mysql數(shù)據(jù)備份與恢復(fù)實(shí)現(xiàn)方法分析
  • Window下如何恢復(fù)被刪除的Mysql8.0.17 Root賬戶及密碼
  • shell腳本實(shí)現(xiàn)mysql定時(shí)備份、刪除、恢復(fù)功能
  • Mysql的Binlog數(shù)據(jù)恢復(fù):不小心刪除數(shù)據(jù)庫(kù)詳解
  • 從MySQL全庫(kù)備份中恢復(fù)某個(gè)庫(kù)和某張表的方法
  • MySQL 基于時(shí)間點(diǎn)的快速恢復(fù)方案

標(biāo)簽:臨汾 湖南 云浮 武威 白銀 聊城 烏海 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql大型SQL文件快速恢復(fù)方案分享》,本文關(guān)鍵詞  Mysql,大型,SQL,文件,快速,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql大型SQL文件快速恢復(fù)方案分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Mysql大型SQL文件快速恢復(fù)方案分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    湖南省| 武平县| 溧阳市| 苍梧县| 轮台县| 莆田市| 宁海县| 沧源| 宁阳县| 萨嘎县| 龙陵县| 巴青县| 衡东县| 沾化县| 台北县| 济阳县| 自治县| 云梦县| 龙门县| 弥渡县| 云和县| 武冈市| 鄂州市| 金溪县| 利辛县| 松阳县| 西藏| 夏河县| 大港区| 女性| 黑水县| 临海市| 威宁| 达孜县| 沂源县| 大名县| 黄陵县| 安达市| 邛崃市| 康乐县| 金湖县|