【发布时间】:2013-12-23 14:21:03
【问题描述】:
我有以下查询在两个表上运行,每个表有超过 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)
当我运行此查询时,我反复遇到锁定和等待超时。
【问题讨论】:
-
imageurl列上是否有索引? -
在两个表中的 URL 列上添加索引。
-
让你的查询更快(不超过 50 秒),或者将 innodb_lock_wait_timeout 从默认的 50 秒增加到更多 --> dev.mysql.com/doc/refman/5.0/en/…
标签: mysql sql timeout inner-join