表數據量比較大的時候快速導入導出數據
涉及到兩個命令:
SELECT * INTO OUTFILE
LOAD DATA INFILE
如:從tb_test表導出數據,然後導入到表tb_test2中
SELECT * INTO OUTFILE '/home/tmp/test.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tb_test;
LOAD DATA INFILE '/home/tmp/test.txt'
IGNORE INTO TABLE tb_test2
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
需要注意:LOAD DATA INFILE如果想使用Local關鍵字從本地導入文件,需要在環境變量中設置local_infile
設置值爲1,默認是不可用的
執行期間如果引擎支持ALTER TABLE... DISABLE KEYS則會自動禁用索引以加快速度
官方文檔說明: