以下非常简单的SQL代码段失败:
UPDATE smalltable,bigtable
SET smalltable.ssn=bigtable.ssn
WHERE smalltable.last = bigtable.last && smalltable.first = bigtable.first;
bigtable有16,000条记录 - 对SQL来说并不是那么大。 smalltable有大约300.由于某种原因,这个声明是超时(> 30秒)。为什么?看起来非常简单,并且数据不难处理:不是很多重复,短字段(VARCHAR(20))等。
我做错了吗?我只是试图用bigtable中的简单(或者我认为)查找来更新smalltable中的记录。
编辑:非常可能相关:smalltable是LOCAL INFILE
。
答案 0 :(得分:5)
你有索引:
smalltable.last, bigtable.last, smalltable.first, bigtable.first