【发布时间】:2014-08-28 19:10:45
【问题描述】:
我有一个包含 1600 万条记录的 DEV 数据库。我需要“屏蔽”个人数据列(姓名、地址、电话等)。我发现了一个很好的函数,可以很好地完成数据屏蔽Howto generate meaningful test data using a MySQL function。
问题是,当我调用该函数时,它每秒只处理大约 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 中天生就很慢。据我所知,您无法加快速度。
-
也许按程序而不是随机生成项目?
-
是的影子,没错。
-
对不起(在您回答时编辑了我的评论)...例如,而不是基于格式化字符串的随机值 - 使用基于 id 生成相同 gobbledygook 字符串的算法? .. 使用散列,然后将散列字符串中的位抓取到格式化程序中?
-
我理解这个概念,但不知道如何在 MYSQL 中做到这一点
标签: mysql data-masking