我有一个Mysql更新语句,它运行时间太长 - 52秒
update table_ea ea, table_a a
set ea.match_creator='S', a.match_state=N
where
ea.source_id=a.asset_id and
ea.source_name='S' and
ea.match_creator='S' and
ea.entity_id like 'S'
问题:
a)我们可以像在Select语句中那样在Mysql中对此更新语句进行解释吗? b)关于如何最小化更新时间的任何建议..
答案 0 :(得分:1)
查看相应的select语句的执行方式。你可能错过了一个索引。
如果您希望我们检查,您需要发布表信息。
尝试发布SHOW CREATE TABLE table_ea
和SHOW CREATE TABLE table_a
EXPLAIN SELECT ea.match_creator, a.match_state
FROM table_ea ea, table_a a
WHERE ea.source_id=a.asset_id
AND ea.source_name='S'
AND ea.match_creator='S'
AND ea.entity_id like 'S'`
答案 1 :(得分:0)
您应该为表的以下字段创建索引,以使其更快(它加速了连接):
ea.source_id
a.asset_id
ea.source_name
ea.match_creator
ea.entity_id
我还建议您使用相等的运算符替换entity_id的like运算符,因为在这种情况下它是相同的。