mysql workbench,替换文件中的列
mysql workbench, replace column from file
我有一个 1,000,000 行的 .csv 文件,我使用 mySQL Workbench 上传到 table,但我忘记在开始之前设置日期 YYYY-MM-DD
, 所以他们都上传为 0000-00-00
.
上传百万条记录花了将近 8 个小时,所以我真的很想不必重新做一遍,但我不知道是否有办法只替换那个来自我最初上传的同一文件的数据列,现在我已经将日期更改为正确的格式。
有人知道这是否可行吗?
编辑
post 一切都太长了,但是:这是 show create table
去掉了一些肉:
CREATE TABLE myTable
( lineID int(11) NOT NULL AUTO_INCREMENT,
1 varchar(50) DEFAULT NULL,
2 varchar(1) DEFAULT NULL,
3 int(4) DEFAULT NULL,
4 varchar(20) DEFAULT NULL,
DATE date DEFAULT NULL,
PRIMARY KEY (lineID)
) ENGINE=InnoDB AUTO_INCREMENT=634205 DEFAULT CHARSET=utf8
版本是5.6.20
截图:
好的。我建议明确使用 LOAD DATA INFILE 。对于那些还没有使用过它的人,在你看到它之前,暂时把它当作一个 select 语句。
这是一篇关于性能和策略的好文章,标题为 Testing the Fastest Way to Import a Table into MySQL。不要让 mysql 版本的标题或文章内部吓跑您。跳到底部并得出一些结论:
The fastest way you can import a table into MySQL without using raw
files is the LOAD DATA syntax. Use parallelization for InnoDB for
better results, and remember to tune basic parameters like your
transaction log size and buffer pool. Careful programming and
importing can make a >2-hour problem became a 2-minute process. You
can disable temporarily some security features for extra performance
其中也有一些优点,主要是关于二级索引(你没有)的同行评论。其他人的重点是事后添加。
希望这些链接有用。您的数据会在 10 分钟内出现(在另一项测试 table 和 LOAD DATA INFILE
中)。
一般评论
最慢的方法是在编程语言中通过 while 循环逐行执行。越来越快肯定是批处理,其中一个插入语句一次传递 200 到 1k 行。性能大幅提升的是 LOAD DATA INFILE。最快的是原始文件(我做的,但超出了这里讨论的范围)。
我有一个 1,000,000 行的 .csv 文件,我使用 mySQL Workbench 上传到 table,但我忘记在开始之前设置日期 YYYY-MM-DD
, 所以他们都上传为 0000-00-00
.
上传百万条记录花了将近 8 个小时,所以我真的很想不必重新做一遍,但我不知道是否有办法只替换那个来自我最初上传的同一文件的数据列,现在我已经将日期更改为正确的格式。
有人知道这是否可行吗?
编辑
post 一切都太长了,但是:这是 show create table
去掉了一些肉:
CREATE TABLE myTable
( lineID int(11) NOT NULL AUTO_INCREMENT,
1 varchar(50) DEFAULT NULL,
2 varchar(1) DEFAULT NULL,
3 int(4) DEFAULT NULL,
4 varchar(20) DEFAULT NULL,
DATE date DEFAULT NULL,
PRIMARY KEY (lineID)
) ENGINE=InnoDB AUTO_INCREMENT=634205 DEFAULT CHARSET=utf8
版本是5.6.20
截图:
好的。我建议明确使用 LOAD DATA INFILE 。对于那些还没有使用过它的人,在你看到它之前,暂时把它当作一个 select 语句。
这是一篇关于性能和策略的好文章,标题为 Testing the Fastest Way to Import a Table into MySQL。不要让 mysql 版本的标题或文章内部吓跑您。跳到底部并得出一些结论:
The fastest way you can import a table into MySQL without using raw files is the LOAD DATA syntax. Use parallelization for InnoDB for better results, and remember to tune basic parameters like your transaction log size and buffer pool. Careful programming and importing can make a >2-hour problem became a 2-minute process. You can disable temporarily some security features for extra performance
其中也有一些优点,主要是关于二级索引(你没有)的同行评论。其他人的重点是事后添加。
希望这些链接有用。您的数据会在 10 分钟内出现(在另一项测试 table 和 LOAD DATA INFILE
中)。
一般评论
最慢的方法是在编程语言中通过 while 循环逐行执行。越来越快肯定是批处理,其中一个插入语句一次传递 200 到 1k 行。性能大幅提升的是 LOAD DATA INFILE。最快的是原始文件(我做的,但超出了这里讨论的范围)。