3

MySQL でサブクエリを最初に 1 回だけ実行するにはどうすればよいですか? 現在、MySQL はテーブル t1 のすべての行に対して内部クエリを実行していますが、これはパフォーマンスの惨事です。

explain select * from t1 where uid in (select id from t0);
+----+--------------------+-------+------+---------------+------+---------+------+----------+-------------+
| id | select_type        | table | type | possible_keys | key  | key_len | ref  | rows     | Extra       |
+----+--------------------+-------+------+---------------+------+---------+------+----------+-------------+
|  1 | PRIMARY            | t1    | ALL  | NULL          | NULL | NULL    | NULL | 18954249 | Using where |
|  2 | DEPENDENT SUBQUERY | t0    | ALL  | NULL          | NULL | NULL    | NULL |    12749 | Using where |
+----+--------------------+-------+------+---------------+------+---------+------+----------+-------------+
4

2 に答える 2