我有一个 13gb .txt 文件,正在将其导入 MySQL,但我不想导入所有数据。例如,有许多列要么完全为空,要么包含不相关的信息 - 我只想导入我提供的 ~100/360 。如果我只为我想要的列创建标题,我可以从.txt文件中选择具体对应的数据进行上传吗?
通常我会使用文本编辑器删除多余的数据,但我没有可以处理这种大小的文件的文本编辑器。
最佳答案
您可以通过将输入文件中的特定列分配给用户定义的变量而不是数据库列来忽略它们。
例如,如果您有一个包含 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 中的模式.
关于mysql - 我可以选择性地将数据从文本文件导入MySQL吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42140337/