gpt4 book ai didi

mysql - 如果我们使用谓词对 View 进行查询,数据库服务器是否会将谓词推送到 View 的下划线查询?

转载 作者:行者123 更新时间:2023-11-29 16:28:37 24 4
gpt4 key购买 nike

我正在使用 MySQL,并且我有一个复杂的 View ,这导致了性能问题。

view_3的定义

从 view_1 中选择*并从 view_2 中选择*

现在,当我像下面这样对 view_3 运行查询时

从 view_3 中选择 *,其中 clolumn_a=value;

这正在处理大量行,可能会进行全表扫描,然后返回结果。

那么执行如下查询会更好

select * from view_1 where column_a=value union select * from view_2 where column_a=value;

这种 View 处理行为在 Oracle、MSSQL 等其他 SQL 服务器中是否保持不变

谓词是否会被推送到 View 的下划线查询?

最佳答案

是的, View 就像其他一些语言中的“宏”。 View 的定义被“扩展”到使用它的查询中,然后整个查询(现在仅由对真实基表的访问组成,没有 View )作为一个整体进行优化。

假设优化器正确地完成了它的工作,它应该能够将任何谓词“向下”推送 - 如果有与您的谓词匹配的适当索引,也许选择使用索引查找而不是表扫描。

如果您想准确了解优化器对查询执行的操作,请了解如何获取和读取执行计划。在 ,这可以通过 EXPLAIN 完成.

关于mysql - 如果我们使用谓词对 View 进行查询,数据库服务器是否会将谓词推送到 View 的下划线查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54085360/

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