我的要求是根据客户端提供的电子邮件地址更新用户阻止邮件列表。电子邮件地址可以采用MD5,sha1或简单电子邮件地址的形式。 目前,当我用电子邮件列表更新用户电子邮件地址时,花费了很多时间后,它锁定了表,并且对该表没有进一步的查询过程。我还在两个表上都放了索引。
查询:
UPDATE database1.nl_user u
INNER JOIN database2.email_blacklist e
SET u.block_mail_list = IF(u.block_mail_list is NULL OR u.block_mail_list='',e.listId,concat(u.block_mail_list,',',e.listId)),e.isMatch = 1
WHERE (md5(u.email) = e.email OR u.email = e.email OR sha1(u.email) = e.email);
用户表计数:“ 168219” 已阻止的电子邮件列表计数:“ 36,000”
感谢您的时间,并希望能收到您的来信。
谢谢! 问候