我有一个13gb .txt文件,我将其导入MySQL,但我不想导入所有数据。例如,有许多列完全为空或包含无关信息 - 我只想导入~100 / 360我已经提供。如果我只为我想要的列创建标题,我可以从.txt文件中选择要上传的特定相应数据吗?
通常我会使用文本编辑器来删除多余的数据,但我没有可以处理这种大小的文件的文本编辑器。
答案 0 :(得分:0)
您可以通过将输入文件中的特定列分配给用户定义的变量而不是数据库列来忽略它们。
例如,如果您有一个包含4列的CSV文件,并且只想将第1列和第4列导入到表中,则可以执行以下操作:
load data infile '/tmp/so42140337.csv'
into table so42140337
fields terminated by ','
lines terminated by '\n'
(c1,@dummy,@dummy,c2);
考虑到输入文件的大小,以块的形式导入它可能更有效,而不是在一个命令中导入整个文件。您可以使用pt-fifo-split
工具,遵循此blog post中的模式。