我正在创建一个表格,它将突出显示符合特定条件的数据。例如,如果我有一个具有整数值的表,我希望我的视图显示具有大于100的值的行。我知道如何通过在表上创建视图来实现此目的,但视图是动态的吗?我已经在MySQL中测试过了,它似乎是真的。但是如果我的桌子有超过1000行,这是否有效?该视图是否仍会“动态”更新原始表中的任何更改?MySql Views是否动态且高效?
19
A
回答
23
基本上,MySQL中基本上有2 types of views。
合并视图
这种类型的观点基本上只是与视图的SQL重新写你的查询。所以这对于自己编写查询是一个短暂的手段。这不会提供真正的性能优势,但可以使复杂查询变得更轻松,并使维护变得更加轻松(因为如果视图定义更改,则不需要针对视图更改100个查询,而只需定义一个)。
不是Temptable查看
这种类型的视图创建临时表与视图的SQL查询。它具有合并视图的所有优点,但也减少了视图表上的锁定时间。因此,在高负载的服务器上,它可能会有相当显着的性能增益。
还有“未定义”视图类型(默认值),这让我们的MySQL挑它认为在查询时的最佳类型...
但需要注意的一些需要注意的重要的是, MySQL不支持materialized views。所以它不像甲骨文那样复杂的观点会显着增加查询的性能。视图的查询总是在MySQL中执行。
就效率而言,MySQL中的视图不会增加或降低效率。在编写和维护查询时,它们可以让您的生活更轻松。我已经在有数亿行的表上使用了视图,并且它们工作得很好......
+0
好的,这是有道理的。感谢ircmaxell! – Santiago 2011-02-03 14:39:11
9
mysql不会在临时表上使用索引...所以它会严重影响您的性能。
相关问题
- 1. 这是否高效?
- 2. 高效的动态聚类
- 3. Perl Goatse'Secret Operator'是否高效?
- 4. OCaml - 操作是否高效?
- 5. java.util.regexp是否足够高效?
- 6. 动态Javascript - 这是否有效?
- 7. CakePHP MySQL Views
- 8. MySQL高效且正确链接GROUP BY结果
- 9. MySQL:高效的Blobbing?
- 10. 创建间隔,并且返回是否有效
- 11. 高效地绘制动态对象
- 12. 高效的动态生成的Java GUI
- 13. MATLAB高效动态扩展原语
- 14. Haskell动态编程的高效表
- 15. 我的线程方法是否高效?
- 16. APR(Apache Portable Runtime)钩子是否高效?
- 17. 数据库的设计是否高效?
- 18. Google Cloud Spanner是否支持VIEWS
- 19. 什么是高效且安全的Java RPC选项?
- 20. 在没有使用CTE的情况下,此查询是否存在逻辑上等效且高效的版本?
- 21. 用MySQL高效分页
- 22. 更高效的查询MYSQL
- 23. 更高效的MySQL语句?
- 24. 提高MySQL的效率
- 25. 高效的mysql查询
- 26. MySQL的:高效的查询
- 27. 高效的MySQL搜索
- 28. 高效的MySQL搜索
- 29. MySQL中高效而有效的分页
- 30. 我的MySQL索引是否有效?
请参阅http://stackoverflow.com/q/7922675/632951 – Pacerier 2014-10-26 02:33:27