我每晚都会收到LDAP提要。我将其作为文本文件并转储/创建我的LDAPALL表。大约有75K名员工乘以大约50个字段。
我也有以下几点:
LDAPIMPORTANT -存储所有75K但仅存储15个字段的视图
LDAPSHORT -仅存储5个字段的所有75k字段的视图
LDAPAB -仅根据两个组存储9k名员工的视图(字段查找)
其中每一个都被大量使用,用于不同的应用程序,也有很多针对这些视图编写的视图。但它们没有任何更新。我们不更新员工数据。它只是每晚更新一次LDAPALL。
在这种情况下,我应该从LDAPALL表而不是视图创建表吗?我可以安排好工作每晚做一次这些桌子。这背后的最佳实践是什么?说外行人的话,因为我是一个PHP开发人员做所有DB管理的东西。
发布于 2013-08-18 18:35:16
我给了一个+1的物化视图。如果这是一种更真实的东西,那就走吧。但事实上,我每天只有一个更新的用户,这只是大量的工作,很少回报。
最后,我设置了一组查询,这些查询计划用来创建“子表”,这比创建视图要高效得多。我们有大约10个支持一切的子表。其中大部分花了2-4秒的时间才能创造出来,它们在夜间被分散在20分钟以上。
我们确实有很多视图是从这些子表中创建的,所有的东西都运行得非常快,而不是把大量的视图从一张大表上拿出来--它只是有很多我们不使用/不需要的数据。
发布于 2013-08-07 18:54:51
如果视图执行,我会简单地使用它们。不需要不必要地复制数据,而且许多数据库平台允许索引或物化视图和筛选视图等。
但是,MySQL不支持索引视图。因此,除非表上的基础索引支持访问数据的各种方式,否则自己实现视图的版本可能是值得的。
发布于 2013-08-07 19:45:40
用包含相同数据(现在复制的)的表替换视图的概念称为物化视图。
你的问题的答案可能是这里
https://dba.stackexchange.com/questions/47739
复制相似问题