【发布时间】:2011-06-27 15:15:45
【问题描述】:
我有这个问题:
SELECT a.id, b.discount FROM (a LEFT JOIN b ON b.id_a = a.id);
这个查询的解释命令是这样的:
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 视图。
有人可以帮忙吗?
【问题讨论】:
-
视图实际上只是一个存储的查询。相同的优化技术适用于视图,就像您在主查询中直接使用视图的基础查询一样
标签: mysql query-optimization sql-view