提升匯入mysqldump匯出檔案的效率

使用mysql指令匯入mysqldump匯出的檔案時,發現效率異常緩慢。

整個sql檔只有200mb不到,算不上巨量的資料。

相同資料庫平常也經常使用phpmyadmin匯出整個資料庫再匯入,狀況都很正常。

網路上查到要在my.ini 裡的mysqld區段設定以下參數

innodb_buffer_pool_size = 4G
innodb_log_buffer_size = 500M
innodb_log_file_size = 1G
innodb_write_io_threads = 16
innodb_flush_log_at_trx_commit = 0

以上設定是原文作者主機有8G記憶體的前提。

接著在mysqldump匯出的sql檔的最前面加上下列敘述

SET FOREIGN_KEY_CHECKS=0;
SET UNIQUE_CHECKS=0;
SET AUTOCOMMIT=0;

以及最後面加上下列敘述

COMMIT;

總結

前面提到平常也會使用phpmyadmin匯出整個資料庫再匯入,當時的狀況都很正常。

換句話說,原來的my.ini其實應該可以跑得順暢,

因此猜測真正的關鍵應該是加到sql裡的那些敘述。

參考頁面: https://www.its.caltech.edu/~ggrasmeh/slow_mysql_innodb_sqldump_import_solved.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

Proudly using Dynamic Headers by Nicasio WordPress Design