我有以下查询在两个表上运行,每个表有超过80,000和40,000条记录:
update
profileimageurls piu
inner join
profileuniqref pr
on piu.imageurl = pr.uniqueimageurl
set piu.uniqueimagekey = pr.keyid;
profileimageurls的表结构:
Field Type Null
KeyID bigint(20) unsigned NO
UserID bigint(20) unsigned NO
ImageURL varchar(4000) NO
UniqueImageURL varchar(4000) YES
Error varchar(10000) YES
Status tinyint(3) unsigned YES
uniqueImageKeyid bigint(20) unsigned YES
表profileuniqref的结构:
Field Type
KeyId bigint(20) unsigned
uniqueimageurl varchar(4000)
md5hash varchar(32)
md5hashbinary varchar(16)
当我运行此查询时,我反复获得锁定和等待超时。
答案 0 :(得分:1)
确保您在连接条件中使用的列上有索引。
答案 1 :(得分:0)
如果你在连接表之间有外键而你正在更新密钥,这可能会导致mysql更新这两个表之间的密钥数据。