2011-05-18 909 views
2

我加入了一些表,并希望创建一些表或视图中更容易对查询做到数据的快速分析。使用组合数据创建新表格或新视图的含义是什么?MySQL数据库中TABLE和VIEW之间有什么区别?

目前我正在连接表是静态的,但是这个代码可以被移动到我们未来的生活表。

+0

是否创建该视图已经重新执行每次查询使用的视图时查询? – 2011-05-18 16:16:12

+0

视图是否更新为您的表,该视图在更新上运行? – 2011-05-18 16:16:48

+1

是的,更新基础表将更新视图“现场”。 – 2011-05-18 17:03:33

回答

1

这是一个轻微的过分简化,但一个视图基本上是一个表返回结果(在行和列),然后您可以查询,如果它是它自己的表的一个保存的查询。

在MySQL 5.0中,观点是不是所有的伟大,因为它每次使用时执行的基础查询,所以真的没有多大意义对他们(尽管它们可能是代码重用有用)。但是,从5.0开始可能已经发生了变化。

+0

所以如果查询创建我的看法花了10分钟来执行,查询视图上至少要花query_time_min + 10分钟(也过于简单化了)? – 2011-05-18 15:54:54

+1

我相信是这样,除非它自5.0起改变。查询缓存和其他内部的“mysql是聪明的”机制可能会稍微减轻它(因此过分简化部分),但是......或多或少。 – 2011-05-18 17:01:57

0

表中存储的数据

一个观点是像select * from table一个存储过程后保存在数据库中使用

你可以有连接两个表的视图,然后从该视图,而不连接子句选择但得到一个加入的结果

+0

所以如果创建我的视图的查询需要10分钟执行,那么视图上的查询至少需要query_time_min + 10min(这可能是过度简化)? – 2011-05-18 16:21:58

+0

@T。布赖恩琼斯 - 有点 - 但对视图的查询将花费相同的时间来执行自己的sql执行。 – Rob 2011-05-18 16:25:54

0

除了Rob的解释:

您可以授予不仅对表,而且对视图上的权限。有了这个,您只能访问数据库数据的已编译子集。

+0

相关提示谢谢。 – 2011-05-18 16:00:11

+0

@T。布赖恩琼斯 - 如果一个答案提供有用的信息,它很高兴它upvote。 – 2011-06-10 13:02:20

相关问题