0
問候支持社區,MySQL的 - 從LOCAL INFILE LOAD DATA - 如何提高性能
我有1000萬+的文件,我嘗試使用下面的腳本加載到MySQL數據庫:
WORKING_DIR=/tmp
FILE1="*test*"
timestamp_format="%Y-%m-%d %H:%i:%s.%x"
for i in ${WORKING_DIR}/${FILE1}
do
if [ -f "$i" ]; then
mysql -uroot -ptest my_database --local-infile=1<<-SQL
SET sql_log_bin=0;
LOAD DATA LOCAL INFILE '${i}' INTO TABLE my_table
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id, transaction_id, app_id, sub_id);
SQL
fi
done
這是一個非常緩慢的過程。大約24小時後,我只能載入約200萬條記錄。在每個文件中,都有一條記錄。按照這個速度,這將在大約5天內完成。有沒有更快的方法來做到這一點?例如。我應該在處理之前連接文件嗎?
任何建議,以改善加載到MySQL數據將不勝感激。
謝謝!
如果建議在處理之前連接文件,我將如何有效連接1000萬個文件?謝謝! – user3567212
什麼操作系統?他們都在一個目錄中嗎?另外,爲什麼文件包含1行?哦,'/ tmp',Linux。 – Drew
CentOS 7.他們都在一個目錄中。謝謝!! – user3567212