MySQL導入數據非常慢的解決辦法


MySQL導出的SQL語句在導入時有可能會非常非常慢,經歷過導入僅45萬條記錄,竟用了近3個小時。在導出時合理使用幾個參數,可以大大加快導入的速度。

-e 使用包括幾個VALUES列表的多行INSERT語法;
--max_allowed_packet=XXX 客戶端/服務器之間通信的緩存區的最大大小;
--net_buffer_length=XXX  TCP/IP和套接字通信緩沖區大小,創建長度達net_buffer_length的行

注意:max_allowed_packet和net_buffer_length不能比目標數據庫的配置數值大,否則可能出錯。

首先確定目標庫的參數值
mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';

根據參數值書寫mysqldump命令,如:
mysql>mysqldump -uroot -p 數據庫名  -e --max_allowed_packet=1048576 --net_buffer_length=16384 > SQL文件

如:

mysql>mysqldump -uroot -p discuz  -e --max_allowed_packet=1048576 --net_buffer_length=16384 > discuz.sql

之前2小時才能導入的sql現在幾十秒就可以完成了。

 

建立索引后 插入大量數據回很慢  解決辦法就是在插入大量數據之前先不要索引或刪除索引,然后再建立索引。

 

 

 

 

 

 

 

 

 

 

 

 

建立索引后 插入大量數據回很慢  解決辦法就是在插入大量數據之前先不要索引或刪除索引,然后再建立索引。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM