我有一个具有1600万(ish)记录的DEV DB。我需要'掩饰'个人数据列(名称,地址,电话等)。我发现了一个很好的功能,可以很好地完成数据屏蔽Howto generate meaningful test data using a MySQL function。MYSQL屏蔽更新大数据库上的数据非常慢
问题是,当我调用函数时,它每秒只能处理约30条记录。 这是减慢的方法。
有没有办法加快速度。也许创建一个临时表或其他东西。
这是调用该函数的UPDATE语句。
UPDATE table1
SET first_name = (str_random('Cc{3}c(4)')),
last_name = (str_random('Cc{5}c(6)')),
email = (str_random('c{3}c(5)[.|_]c{8}c(8)@[google|yahoo|live|mail]".com"')),
address1 = (str_random('d{3}d{1} Cc{5} [Street|Lane|Road|Park]')),
city = (str_random('Cc{5}c(6)')),
state = (str_random('C{2}')),
zip = (str_random('d{5}-d{4}'))
谢谢!
任何随机事件在MySQL中本质上都很慢。就我所知,没有什么可以加快速度的。 – ydaetskcoR 2014-08-28 19:13:14
也许程序性地而不是随机地生成项目? – 2014-08-28 19:18:02
是暗影,这是正确的。 – GreetRufus 2014-08-28 19:18:43