1. 程式人生 > >HeidiSQL、Navicat、mysql命令和source命令匯入sql指令碼的速度比較

HeidiSQL、Navicat、mysql命令和source命令匯入sql指令碼的速度比較

一、四種匯入方式的比較 1、heidisql客戶端是一條一條插入的,速度最慢,而且很脆弱比較容易崩潰; 2、mysql命令匯入380萬記錄用時1小時13分(屬於前臺執行的命令,ctrl+c就可以結束); 3、source命令匯入的速度和mysql命令匯入差不多(進入mysql命令介面,ctrl+c結束不了,關閉xshell也結束不了,需要kill程序)。想看這個程序運行了多長時間,命令:ps -eo pid,lstart,etime|grep 程序號; 4、navicat客戶端匯入11.1G(大概38408601條記錄)的sql指令碼用了37分鐘左右 15點49匯入11.9G的sql指令碼,16點29結束,耗時2419s,總43829483條記錄 380萬記錄(204s≈3.4分鐘) 4383萬記錄(2419s≈40.32分鐘) 二、結束source命令匯入的方法 在使用source命令匯入時,由於速度太慢,我想結束掉,關閉了xshell客戶端,在navicat客戶端看程序,還是有在後臺繼續匯入,資料也在增加,試圖通過客戶端kill掉這個程序,發現還是在繼續匯入。於是登入linux,ps -ef | grep mysql 發現連線mysql命令還在,於是kill掉之後,就停止資料匯入了。   擴充套件知識: kill 命令很容易讓人產生誤解,以為它僅僅就是用來殺死程序的。我們來看一下 man page 對它的解釋:kill - send a signal to a process. 從官方的解釋不難看出,kill 是向程序傳送訊號的命令。當然我們可以向程序傳送一個終止執行的訊號,此時的 kill 命令才是名至實歸。事實上如果我們不給 kill 命令傳遞訊號引數,它預設傳遞終止程序執行的訊號給程序!這是 kill 命令最主要的用法,也是本文要介紹的內容。 一般情況下,終止一個前臺程序使用 Ctrl + C 就可以了。對於一個後臺程序就須用 kill 命令來終止。我們會先使用 ps、top 等命令獲得程序的 PID,然後使用 kill 命令來殺掉該程序。   一般來說,只要記住 "1, 9, 15" 這三個訊號的意義就可以了 常用命令 $ kill -15 pid 這條命令發訊號讓程序正常退出。所謂的正常退出是指按應用程式自己的退出流程完成退出,這樣就可以清理並釋放資源。比如 vim 程式,如果是正常的退出,就會刪除掉臨時檔案 *.swp。 既然訊號 15 是退出程序的正確方式,那它也應該是最常用的方式,因而我們可以省略引數 -15。 $ kill pid 這條命令和上面的命令是等價的,kill 命令預設傳送訊號 15 給目標程序。 當程序出現了異常狀況,不能通過訊號15正常退出時,我們就需要通過非常的手段直接終結掉程序。所謂的非常手段就是傳遞訊號 9 給目標程序! $ kill -9 pid 這樣結束掉的程序不會進行資源的清理工作,所以如果你用它來終結掉 vim 的程序,就會發現臨時檔案 *.swp 沒有被刪除。   參考連結:https://www.cnblogs.com/sparkdev/p/6659629.ht