当我尝试通过诸如:update table1 set sal=32 where prikey in (select id from table2 where....)之类的子查询来更新表时,我得到了错误*"2013 (HY000): Lost connection to MySQL server during query"*。+0x2de5)[0x5645e23e8815]
/usr/libexec/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+
我有一个update查询,它在in子句中使用子查询。子查询仅返回一行。a = a * 2 WHERE id IN (SELECT id from txns WHERE txnid = 'abc');
users表有数百万行,因此explain告诉我这是非常低效的,因为子查询是依赖的但是,当我在上面的子句中将IN改为=时,性能会提高,而且explain也不会将此子查询说成是“相关的”。