gpt4 book ai didi

mysql - 从数据库中的 View 查询比从表中查询更有效吗?

转载 作者:可可西里 更新时间:2023-11-01 07:08:27 24 4
gpt4 key购买 nike

假设我有一个表 A,从该表创建一个 View V。

然后我从V做几个查询,不知道每次查询的时候V会不会重新构造?或者它只会构造 1 次,并由 DBMS 保存在内存中的某个地方以供下一次查询(我认为这类似于从表中查询)?

最佳答案

一般来说,不会。 V 是一组临时行,在查询请求时计算。因为您可以在从 View 进行查询时应用额外的 WHERE 和 ORDER BY 条件,所以可以想象,针对同一 View 的两个查询的执行计划可能会完全不同。数据库通常不能重用先前针对 View 的查询的结果来满足针对该 View 的下一次查询。

也就是说,在某些引擎中有一项相对较新的技术,称为物化 View 。我自己从未使用过它们,但我的理解是这些 View 是根据对基础表所做的更新预先计算的。因此,使用 Materialise Views,您确实可以提高 SELECT 性能,但代价是降低 INSERT、UPDATE 和 DELETE 性能。

您还应该知道,多列索引可用于预先计算涉及单个表的某些选择和排序顺序。如果您对可以使用复合索引满足的表发出查询(查询只需要索引中的列,并且排序顺序与索引匹配),那么永远不需要读取表本身,只需要读取索引。

关于mysql - 从数据库中的 View 查询比从表中查询更有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7451688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com