【发布时间】:2013-03-30 18:13:57
【问题描述】:
我有一个使用下面定义的 MySQL 视图(为简洁起见,省略了JOIN 语句)。
CREATE VIEW vw_example AS
SELECT a, b, c FROM x, y, z
多次重复SELECT a, b, c FROM x, y, z 比SELECT a, b, c FROM vw_example 快 5 倍。
我希望了解这是为什么,以及如何使SELECT FROM vw_example 性能与底层SELECT FROM x, y, z 内联。
【问题讨论】:
-
这个问题可以和这个link相关!
-
还有这个。 . . mysqlperformanceblog.com/2007/08/12/….
-
@pallav_rus 感谢您的链接,但它似乎解决了视图如何比其基础查询具有更好的性能。此外,它适用于带有索引视图的 SQL Server。我不相信 MySQL 中提供了索引视图,但很想知道它们是可用的。
-
@GordonLinoff 感谢您的链接。它看起来更接近问题。这可能是由于我的经验不足,但它似乎没有解决我遇到的问题,即视图比其确切的底层查询慢。相反,它似乎与在添加 WHERE 子句而不是使用具有相同 WHERE 子句的基础查询时可能出现 JOIN'ing 视图或 SELECT'ing FROM a VIEW 效率低下的问题有关。
-
@Jobu:如果可以的话,试试MariaDB(一个 MySQL 的替代品),它对 Views 的优化器有一些改进。
标签: mysql performance view