我有一个类似于以下的查询,在子查询中有更多条件和连接。
EXPLAIN SELECT * FROM (SELECT * FROM test WHERE id = 1) as drv
单独使用子查询需要1秒,因为上面的派生表需要2.5秒。 如何在派生表上定义索引。除了创建临时表之外,还有什么方法可以定义索引。我的查询很复杂,它在上面的查询之上有更多的连接和条件,这就是为什么我不想去临时表...我觉得必须有一些方法来定义除临时表之外的索引
答案 0 :(得分:1)
派生表只是一个宏,而不是它本身的实体。
查询优化器将是基表的基础索引。因此,您需要确保完全扩展查询的基表上的良好索引。
这就是嵌套视图不能提高性能的原因。派生表也可以视为内联视图。
另一种选择是使用临时表,但你已经打了折扣。