我有一个大表"A“(数百万行),只有当来自TableA的"pack_id”为"hello“时,我才想根据另一个”小“表"B”的数据更新一列。
这是我的问题:
UPDATE tableA JOIN (SELECT DISTINCT tableB.destino, tableB.estado from table2) as tableB ON tableA.email = tableB.destino
SET tablaA.estado = tableB.estado
WHERE tableA.pack_id = "hello";此查询需要很长时间。如此之多,以至于有时它甚至无法完成。
有什么方法可以优化这个查询吗?
谢谢。
发布于 2019-02-20 20:56:32
你能避免SELECT DISTINCT吗?
UPDATE tableA a JOIN
tableB b
ON a.email = b.destino
SET a.estado = b.estado
WHERE a.pack_id = 'hello';然后,对于这个查询,您需要a(pack_id, email)和b(destino)上的索引。
https://stackoverflow.com/questions/54786872
复制相似问题