mysql - 优化 mySQL 查询 - 更新 JOIN 2 表

标签 mysql sql phpmyadmin

我有 1 个大表“A”(数百万行),并且仅当 TableA 中的“pack_id” = as“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";

此查询需要很长时间。 太多了,有时甚至无法完成。

有什么办法可以优化这个查询吗?

谢谢。

最佳答案

你能避免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) 上建立索引。

关于mysql - 优化 mySQL 查询 - 更新 JOIN 2 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54786872/

相关文章:

PHP从数据库中选择随机ID

php - 无法使用 PHP 将用户添加到 MySQL 数据库,错误代码 #1064

mysql - 经纬度 MySQL 字段类型

java - 如何将 SQLServer "CAST(0xBB330B00 AS Date)"转换为 MySQL 语法

MySQL 匹配意外行为

sql - sql server上的索引重建

sql - 在 sequelize 中使用 group by 和 joins

mysql - 如何批量插入一个csv文件?

mysql - 为什么下面的 SQL 表创建不起作用?

php - 使用 foreach 根据另一个查询更新 mysql 数据库中的字段