2016年1月27日 星期三

[MySQL]用SELECT INTO OUTFILE匯出資料成CSV

        一般在要在命令列模式下要將MySQL的資料匯出成CSV,我通常都是直接mysql -e "SQL Statement" > /tmp/output.csv,然後SQL Statement用CONCAT組成逗號分隔的字串出來

        後來看書上提到用SELECT INTO OUTFILE更快,於是測試了一下,寫了兩個Shell,主要的SQL Statement是一樣的,只是一個用CONCAT,一個用INTO OUTFILE

        第一個Shell,測試時間的方法如下圖,其中SQLCMD是為一般SELECT CONCAT


        執行三次,大概要花八秒

        第二個Shell用SELECT INTO OUTFILE,測試時間的方法如下圖,其中SQLCMD是一般的SELECT,只是最後面接
INTO OUTFILE '/tools/friend.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

        執行三次,大概要花六秒


        稍微說明一下用的SQL Statement是三表JOIN,大約產出一百多萬筆資料,實測INTO OUTFILE效能真有比較快喔


0 意見:

張貼留言