我正在寻找一个表的视图,它将突出显示符合特定条件的数据.例如,如果我有一个包含整数值的表,我希望我的视图显示值大于100的行.我知道如何通过在表上创建视图来实现这一点,但视图是否动态?我已经在MySQL中测试了它,它似乎是真的.但如果我的表有超过1000行,这是否有效?视图是否仍会"动态"更新到原始表中的任何更改?
irc*_*ell 26
基本上,MySQL 中基本上有两种类型的视图.
合并视图
这种类型的视图基本上只是用视图的SQL重写您的查询.所以这是自己编写查询的简写.这没有提供真正的性能优势,但是使编写复杂查询更容易并使维护更容易(因为如果视图定义发生更改,则不需要针对视图更改100个查询,只需要更改一个定义).
Temptable Views
此类视图使用视图的SQL中的查询创建临时表.它具有合并视图的所有好处,但也减少了视图表的锁定时间.因此,在高负载的服务器上,它可以获得相当显着的性能提升.
还有"Undefined"视图类型(默认),让MySQL在查询时选择它认为最好的类型...
但请注意一些重要的事项,即MySQL对物化视图没有任何支持.因此,它不像Oracle那样复杂的视图会显着提高查询的性能.视图的查询总是在MySQL中执行.
就效率而言,MySQL中的Views不会增加或降低效率.在编写和维护查询时,它们可以使您的生活更轻松.我已经在有数亿行的表上使用了视图,而且它们工作得很好......