相关疑难解决方法(0)

为什么IN条件比sql中的"="慢?

检查问题此SELECT查询需要180秒才能完成(检查问题本身的注释).
IN只能与一个值进行比较,但时差仍然很大.
为什么会那样?

mysql sql comparison performance

28
推荐指数
1
解决办法
5808
查看次数

MySQL IN子句是否多次执行子查询?

鉴于MySQL中的这个SQL查询:

SELECT * FROM tableA WHERE tableA.id IN (SELECT id FROM tableB);
Run Code Online (Sandbox Code Playgroud)

MySQL是否SELECT id FROM tableB为每一行执行多次子查询tableA

有没有办法让sql更快,而不使用变量或存储过程?

为什么这通常比使用慢LEFT JOIN

mysql database-performance

3
推荐指数
2
解决办法
3139
查看次数

MySQL更新花费太长时间

我们在一个表中有超过2000万条记录,并且我们尝试更新3K记录,但是这花费了7分钟以上的时间,并且没有完成,因此终止了查询。

示例查询

UPDATE TABLE_A
SET STATUS = 'PENDING'
WHERE ID IN (
  SELECT ID
  FROM TMP_TABLE_A_STATUS_FIX
);   /*took more than 7 mins and didn't complete even after that*/
Run Code Online (Sandbox Code Playgroud)

我们在临时表TMP_TABLE_A_STATUS_FIX(只有3K记录)中收集了所有需要更新的ID。

由于上述查询花费的时间太长,我们分别进行了如下更新:

UPDATE TABLE_A SET STATUS = 'PENDING' WHERE ID = 1;
UPDATE TABLE_A SET STATUS = 'PENDING' WHERE ID = 2;
UPDATE TABLE_A SET STATUS = 'PENDING' WHERE ID = 3;
.
.
.
UPDATE TABLE_A SET STATUS = 'PENDING' WHERE ID = 2999;
UPDATE TABLE_A SET STATUS = 'PENDING' WHERE …
Run Code Online (Sandbox Code Playgroud)

mysql sql database relational-database

1
推荐指数
1
解决办法
557
查看次数