我有这个查询:
SELECT a.id, b.discount FROM (a LEFT JOIN b ON b.id_a = a.id);
此查询的 EXPLAIN 命令如下:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a index NULL PRIMARY 4 NULL 1489 Using index
1 SIMPLE b ALL NULL NULL NULL NULL 819
A 是有 1489 行的表,B 是 SQL 视图。现在我明白了,MySQL 必须进行 1489*819 操作,这太不优化了。如果 B 是一个表,我将为列 id_a 创建一个索引,但我不知道如何处理 SQL 视图。
有人可以帮忙吗?