MySQL视图比普通查询更快吗?

时间:2011-01-25 02:10:07

标签: mysql optimization view

我有一个使用多个连接的复杂查询(实际上是8个)。我想把它简化成一个视图。经过一番研究后,我可以看到简单性和安全性的好处。但我没有看到任何速度提及。

视图是否像预编译一样工作,查询是预编译的?使用视图会有显着的性能提升吗?

3 个答案:

答案 0 :(得分:16)

不,视图只是存储的文本查询。您可以对其应用WHEREORDER,执行计划将根据这些条款进行计算。

答案 1 :(得分:1)

视图基本上是存储的子查询。基本上没有区别:

SELECT *
FROM someview

SELECT *
FROM (
    SELECT somestuff 
    FROM underlying table
);

除了视图更具可移植性之外,因为每次要处理它返回的任何数据时都不必写出基础查询。

答案 2 :(得分:0)

它有时会有所帮助,但它不是银弹。我已经看过一个视图帮助表现,但我也看到它伤害了它。视图可以强制实现,如果MySQL没有为您选择一个好的访问路径,有时可以为您提供更好的访问路径。