sql - 优化 MySQL 查询(更新 + 子查询)

标签 sql mysql

我想更改 table_one 中列 this 的值,其中 this = 1 和 id 值该行存在于 table_twoother_id

中的任何位置

所以我正在使用这个查询:

UPDATE table_one SET this='0' WHERE this='1' AND table_one.id IN (SELECT other_id FROM table_two);

查询花了几个小时还没有完成,所以我想知道是否有办法更快地完成查询。

如果重要的话,table_one.idtable_two.other_id 都具有唯一值。

table_one 有 55 万行

table_two 有 30k 行

MySQL 5.0.22

最佳答案

尝试使用 EXISTS 而不是 IN

关于sql - 优化 MySQL 查询(更新 + 子查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380989/

相关文章:

mysql - Sequelize 和 mysql : clause `[tableName].deleted_at IS NULL` getting added automatically

java - MySQL Workbench 和 JDBC 中的 utf8mb4

php - 在一张登录表单上登录两个不同的区域

mysql - SQL 仅返回特定年龄的人

sql - 优化sql查询

php - mysql-php计算表中新列的总小时数

mysql - 使用两个列范围从 mysql 中选择数据

mysql - 如何修复 'Selecting rows without null or blank value in each column'?

SQLite - 生成包含总计的表,但从 SUM 中排除重复条目

mysql - 将两个表合并为一个