gpt4 book ai didi

sql - View 在 DBM 中如何工作?

转载 作者:行者123 更新时间:2023-12-01 00:16:46 27 4
gpt4 key购买 nike

假设我有两个这样的表:

Employers (id, name, .... , deptId).Depts(id, deptName, ...).

But Those data is not going to be modified so often and I want that a query like this

SELECT name, deptName FROM Employers, Depts 
WHERE deptId = Depts.id AND Employers.id="ID"

尽可能快。

我想到了两种可能的解决方案:

  • 反规范化表:

    尽管使用这个解决方案我会失去一些“规范化数据库”的巨大优势,但这里的性能是必须的。

  • 为非规范化数据创建一个 View 。

    我将保持数据标准化(这是我的问题),在该 View 上的查询性能会比没有该 View 时更快。

或者以另一种方式提出相同的问题,每次您对 View 进行查询时, View 都会被“解释”,或者 View 在 DBA 中的工作原理是什么?

最佳答案

通常,除非您“具体化”一个 View ,这是某些软件(如 MS SQL Server)中的一个选项,否则该 View 只是转换为对基表的查询,因此不会比原始 View 更快或更慢(减去翻译查询所需的时间极少,与实际执行查询相比微不足道。

您怎么知道您遇到了性能问题?你在负载下分析它吗?确认性能瓶颈是这两张表了吗?通常,在您获得硬数据之前,不要假设您知道性能问题从何而来,也不要花任何时间进行优化,直到您知道您正在优化正确的事情 - 80% 的性能问题来自 20 % 的代码。

关于sql - View 在 DBM 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/428175/

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