发布
社区首页 >问答首页 >为什么在视图中设置静态数据,而在mysql中使用表呢?

为什么在视图中设置静态数据,而在mysql中使用表呢?
EN

Database Administration用户
提问于 2013-08-07 18:32:25
回答 3查看 2K关注 0票数 3

我每晚都会收到LDAP提要。我将其作为文本文件并转储/创建我的LDAPALL表。大约有75K名员工乘以大约50个字段。

我也有以下几点:

LDAPIMPORTANT -存储所有75K但仅存储15个字段的视图

LDAPSHORT -仅存储5个字段的所有75k字段的视图

LDAPAB -仅根据两个组存储9k名员工的视图(字段查找)

其中每一个都被大量使用,用于不同的应用程序,也有很多针对这些视图编写的视图。但它们没有任何更新。我们不更新员工数据。它只是每晚更新一次LDAPALL。

在这种情况下,我应该从LDAPALL表而不是视图创建表吗?我可以安排好工作每晚做一次这些桌子。这背后的最佳实践是什么?说外行人的话,因为我是一个PHP开发人员做所有DB管理的东西。

EN

回答 3

Database Administration用户

回答已采纳

发布于 2013-08-18 18:35:16

我给了一个+1的物化视图。如果这是一种更真实的东西,那就走吧。但事实上,我每天只有一个更新的用户,这只是大量的工作,很少回报。

最后,我设置了一组查询,这些查询计划用来创建“子表”,这比创建视图要高效得多。我们有大约10个支持一切的子表。其中大部分花了2-4秒的时间才能创造出来,它们在夜间被分散在20分钟以上。

我们确实有很多视图是从这些子表中创建的,所有的东西都运行得非常快,而不是把大量的视图从一张大表上拿出来--它只是有很多我们不使用/不需要的数据。

票数 0
EN

Database Administration用户

发布于 2013-08-07 18:54:51

如果视图执行,我会简单地使用它们。不需要不必要地复制数据,而且许多数据库平台允许索引或物化视图和筛选视图等。

但是,MySQL不支持索引视图。因此,除非表上的基础索引支持访问数据的各种方式,否则自己实现视图的版本可能是值得的。

票数 4
EN

Database Administration用户

发布于 2013-08-07 19:45:40

用包含相同数据(现在复制的)的表替换视图的概念称为物化视图。

你的问题的答案可能是这里

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/47739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档