在使用 LOAD DATA INFILE 之前,需要确保MySQL配置中的相关参数设置正确,以便能够处理大型文件。这些配置可能包括:
1) local_infile - 为了使用 LOAD DATA LOCAL INFILE,你需要确保这个参数设置为ON。
2) max_allowed_packet - 这个参数设置了MySQL服务器允许的最大数据包大小。如果你导入的数据行非常大,可能需要增加这个值。
3) secure_file_priv - 这个参数可以限制 LOAD DATA INFILE 可以读取文件的目录。如果设置了这个参数,你只能从这个目录读取文件。
要检查和设置这些参数,可以使用以下SQL命令:
SHOW GLOBAL VARIABLES LIKE 'local_infile'; SET GLOBAL local_infile = 1; SHOW VARIABLES LIKE 'max_allowed_packet'; SET GLOBAL max_allowed_packet = 104857600; -- 例如,设置为100MB SHOW VARIABLES LIKE 'secure_file_priv';
在导入大数据文件之前,还可以考虑关闭索引以加快导入速度,并在导入完成后重新开启索引。对于InnoDB表,可以使用以下命令:
ALTER TABLE your_table DISABLE KEYS; -- 执行 LOAD DATA INFILE 命令 ALTER TABLE your_table ENABLE KEYS;
当然也可以直接在配置文件中修改就好:
local_infile = 1