SQL的下面很简单的代码片段失败:MySQL的UPDATE语句超时
UPDATE smalltable,bigtable
SET smalltable.ssn=bigtable.ssn
WHERE smalltable.last = bigtable.last && smalltable.first = bigtable.first;
BigTable中有16000多条记录 - 不是真的那么大的SQL。小表大约有300个。出于某种原因,这个表述超时(> 30秒)。为什么?它看起来很简单,并且数据不难处理:不是很多重复,短字段(VARCHAR(20))等等。
我做错了什么?我只是试图用bigtable中的简单(或我想)查找来更新smalltable中的记录。
编辑:很可能相关:smalltable是一个LOCAL INFILE
。
你能张贴smalltable和BigTable中创建表?看起来你没有连接列上的索引(第一个和最后一个)。 – a1ex07 2010-10-13 15:03:46
bigtable有很多不相关的记录(总共175个),但关键的记录是last和first,它们是VARCHAR(20)和ssn,它们是VARCHAR(16)。小桌子正是这三个领域。 – Charles 2010-10-13 15:07:43