相关疑难解决方法(0)

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

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

mysql sql comparison performance

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

Mysql Exists vs IN - 相关子查询与子查询?

我很好奇EXISTS()应该如何执行更快IN().

当比尔卡温提出一个好点时,我正在回答一个问题.当你使用EXISTS()它时使用相关子查询(依赖子查询)而IN()只使用子查询.

EXPLAIN显示EXISTS并且NOT EXISTS都使用依赖子查询并且IN / NOT IN都只使用子查询..所以我很好奇相关子查询如何比子查询更快?

我之前使用过EXISTS,它的执行速度比IN快,这就是为什么我很困惑.

这是一个带有解释的SQLFIDDLE

EXPLAIN SELECT COUNT(t1.table1_id) 
FROM table1 t1 
WHERE EXISTS
(   SELECT 1 
    FROM table2 t2
    WHERE t2.table1_id <=> t1.table1_id
);

+-------+-----------------------+-----------+-------+---------------+-----------+--------+--------------------------+--------+------------------------------+
| ID    |   SELECT_TYPE         |   TABLE   | TYPE  | POSSIBLE_KEYS |   KEY     |KEY_LEN |  REF                     |   ROWS |  EXTRA                       |
+-------+-----------------------+-----------+-------+---------------+-----------+--------+--------------------------+--------+------------------------------+
|  1    |   PRIMARY             |   t1      | index | (null)        |   PRIMARY |   4    | …
Run Code Online (Sandbox Code Playgroud)

mysql

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

标签 统计

mysql ×2

comparison ×1

performance ×1

sql ×1