gpt4 book ai didi

mysql - 在 MySQL 中使用 View 的优势

转载 作者:IT老高 更新时间:2023-10-28 23:48:48 25 4
gpt4 key购买 nike

我了解到 View 可用于创建自定义“ TableView ”(可以这么说),聚合来自多个表的相关数据。

我的问题是: View 的优点是什么?具体来说,假设我有两个表:

event | eid, typeid, name
eventtype | typeid, max_team_members

现在我创建一个 View :

eventdetails | event.eid, event.name, eventtype.max_team_members 
| where event.typeid=eventtype.typeid

现在,如果我想为某个 event 设置团队中允许的最大成员数,我可以:

  • 使用 View
  • 执行连接查询(或者可能是存储过程)。

每种方法的优点/缺点是什么?

另一个查询:如果表事件和事件类型中的数据得到更新,更新 View 中的数据是否有任何开销(考虑到它缓存结果数据)?

最佳答案

View 不是单独存储的:当您查询 View 时,该 View 将替换为该 View 的定义。因此,对表中数据的更改将立即通过 View 显示出来。

除了前面指出的安全功能:

如果您要编写大量执行该联接的查询,它会排除该 SQL 代码。就像在多个地方使用的函数中做一些操作一样,它可以让你的代码更容易读/写/调试。

它还允许您在一个地方更改将来执行联接的方式。也许一对多关系可以变成多对多关系,在连接中引入一个额外的表。或者您可能决定将所有事件类型字段非规范化并包含在每个事件记录中,这样您就不必每次都加入(交易空间换取查询执行时间)。

您可以稍后进一步拆分表,将其更改为 3 路连接,并且不必重写使用该 View 的其他查询。

您可以向表中添加新列并更改 View 以忽略新列,这样在更改表定义时一些使用“select *”的旧查询不会中断。

关于mysql - 在 MySQL 中使用 View 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054980/

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