我有一个相当简单的程序在mySQL中运行。我有一个名为“temp”的列的表,它是一个varchar,我想格式化它并将其放在名为“timestamp”的列中,这显然是一个时间戳。
“temp”在.csv文件中的格式不正确,因此我必须进行一些计算才能使其成为时间戳格式。我是这样做的:
update tbl set timestamp=(concat(left(temp,4), '-', substr(temp,5,2), '-', substr(temp,7,2), right(temp,13)));
如果有办法将它直接加载到表中,因为我使用“LOAD DATA LOCAL INFILE”也会起作用 - 任何更快的实现都会很棒!
另一个更新如下:非常慢:
update tbl set thour=hour(timestamp);
第三个性能阻止程序是这个只删除列的语句 - 想知道为什么需要这么长时间。
alter table tbl drop column temp;
我可以使用这些语句来优化性能,因为这是阻止我运行大型查询的愚蠢行为。