0

我有一个类似于以下的查询,在子查询中有更多条件和联接。

   EXPLAIN SELECT * FROM (SELECT * FROM test WHERE id = 1) as drv

仅子查询需要 1 秒,因为上面的派生表查询需要 2.5 秒。如何在派生表上定义索引。除了创建临时表还有什么方法可以定义索引。我的查询足够复杂,它在上述查询之上有更多的连接和条件,这就是我不想使用临时表的原因。我觉得除了临时表之外,必须有一些方法来定义索引

4

1 回答 1

1

派生表只是一个宏,而不是它自己的实体。

查询优化器将基表的基础索引。因此,您需要确保完全扩展查询的基表上有良好的索引。

这就是嵌套视图不能提高性能的原因。派生表也可以视为内联视图。

另一种选择是使用临时表,但你已经打折了。

于 2013-05-27T07:53:28.210 回答