MYSQL 100000更新

时间:2011-06-15 14:31:24

标签: mysql

我是每个人,

我必须使用文件更新数据库中的大约100000个字段。 所以我有一个这样的文件:

update db set field='truc0' where id='0'
update db set field='truc1' where id='1'
...
update db set field='trucn' where id='n'

我解析文件,并为每行发送请求到我的db

但我的问题是这个过程极其缓慢。 例如,我已经开始了这个过程 2%= 2064个请求= 900秒

你是否知道另一个过程可以在更好的时间内做同样的事情?

很多答案

2 个答案:

答案 0 :(得分:6)

这样的东西肯定会更快,因为它是一个查询而不是n个查询:

update db set field='truc' + cast(id as varchar)

答案 1 :(得分:0)

根据您的问题,您是否要更新数据库中的所有行或者只是更新从文件中读取的特殊ID,这一点并不完全清楚。

在后一种情况下,尝试从文件中读取块并将ID组合在一起。 例如。如果文件块包含ids 3 4 5 6 7 8,则可以优化查询

update db set field=.... where id between 3 and 8; 

(小心如果你使用varchar键而不是整数!)

如果id是随机的,你可以通过使用sql“IN”子句

来提升性能
update db set field=... where id in ('18','49','72','30','187');