如何解決mysql導入sql文件慢、錯等問題
mysql導入sql文件慢、錯等問題
在服務開發(fā)過程經(jīng)常有數(shù)據(jù)遷移、備份、sql導入需求,而在mysql導入sql文件過程中經(jīng)常出現(xiàn)慢、錯等問題,尤其是通過mysql客戶端(比如Nacivat)導入速度更慢。
今天我們選用一個新的導入方案,用MySQL自帶的source導入,進行部分自定義操作,速度更快、統(tǒng)一提交;原理:減少網(wǎng)絡請求、關閉日志打印、關閉自動提交(開啟手動提交),目的是均是為了提高導入效率。
廢話少說,現(xiàn)在開始吧。
1、命令行登錄數(shù)據(jù)庫
mysql -uroot -p
2、創(chuàng)建數(shù)據(jù)庫
如果數(shù)據(jù)庫還沒有創(chuàng)建的話
create database demo;
3、設置參數(shù)
#臨時關閉二進制日志 set sql_log_bin=off; #臨時關閉事務自動提交 set autocommit=0;
4、使用某個數(shù)據(jù)庫
use demo;
5、手動開啟事務
start transaction;
6、執(zhí)行source導入sql文件
- 1)linux環(huán)境
source .../test.sql
- 2)win環(huán)境
source D:\...\test.sql 或者 source D:/.../test.sql
7、手動提交事務請求
commit;
8、還原最初的配置
#恢復二進制日志 set sql_log_bin=on; #恢復事務自動提交 set autocommit=1;
理想情況下數(shù)據(jù)一次性成功導入。
9、注意事項
1)表的最大容量問題 max_allowed_packet
show variables like '%max_allowed_packet%'; select @@max_allowed_packet;
查詢:
手動設置
set global max_allowed_packet = 102410141024;
重啟mysq才能生效
2) 表的大小寫問題
有些業(yè)務有大寫和小寫的表,設置不區(qū)分,比如linux環(huán)境mysql默認區(qū)分;
但是win環(huán)境默認不區(qū)分;
因此必須保持一致
show variables like "%case%";
結果
原理
- lower_case_table_names = 0 區(qū)分大小寫,默認是這種設置
- lower_case_table_names = 1 不區(qū)分大小寫
當然,需要在配置文件中修改ini或者cnf 文件里添加。
3)導入數(shù)據(jù)時字符集設置問題
報錯:mysql數(shù)據(jù)庫導入出錯
ERROR:Unknown command ‘\’
核對此數(shù)據(jù)的字符集和腳本文件里的字符集是否一直,核對后你就會恍然大悟!
這樣核對!
除此之外、還有其他類似的設置問題,當然要舉一反三!
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 利用Sqoop實現(xiàn)MySQL數(shù)據(jù)導入Hive的全流程
- 使用mysqldump導出導入mysql表結構或者數(shù)據(jù)
- MySQL解決數(shù)據(jù)導入導出含有外鍵的方案
- 如何解決mysql執(zhí)行導入sql文件速度太慢的問題
- 解決SQL文件導入MySQL數(shù)據(jù)庫1118錯誤的問題
- mysql導入sql文件失敗的解決方案
- Navicat導入導出Mysql?結構、數(shù)據(jù)、結構+數(shù)據(jù)完整步驟
- MySQL導入.CSV數(shù)據(jù)中文亂碼的解決方式
- Mysql命令行導出SQL文件和導入文件詳細步驟
- MySQL數(shù)據(jù)導入導出的三種辦法總結
- mysql導入導出數(shù)據(jù)的示例詳解
- mysql sql大文件導入正確姿勢
相關文章
MySQL中count(*)、count(1)和count(字段名)的區(qū)別及說明
這篇文章主要介紹了MySQL中count(*)、count(1)和count(字段名)的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03Navicat連接MySQL出現(xiàn)2059錯誤的解決方案
當使用Navicat連接MySQL時,如果出現(xiàn)錯誤代碼2059,表示MySQL服務器不接受Navicat提供的加密插件,解決方法主要有兩種:一是修改MySQL用戶的認證插件為mysql_native_password,二是升級Navicat到最新版本以支持MySQL8.0及其默認的caching_sha2_password認證插件2024-10-10Can’t open file:''[Table]mytable.MYI''
也許很多人遇到過類似Can’t open file: ‘[Table]mytable.MYI’ 這樣的錯誤信息,卻不知道怎么解決他,下面我們做個介紹,2011-01-01node 多種方法連接mysql數(shù)據(jù)庫(最新推薦)
mysql是一個流行的第三方模塊,可以通過npm安裝,在Node.js 中,有多種方法可以連接 MySQL 數(shù)據(jù)庫,本文通過實例代碼講解node 多種方法連接mysql數(shù)據(jù)庫的示例代碼,感興趣的朋友跟隨小編一起看看吧2023-07-07