【问题标题】:MySQL Views - When to use & when not toMySQL 视图 - 何时使用和何时不使用
【发布时间】:2010-12-01 19:11:06
【问题描述】:

mysql 认证指南建议视图可用于:

  • 创建可能涉及计算的摘要
  • 用WHERE子句选择一组行,隐藏不相关信息
  • 联接或联合的结果
  • 允许通过保留原始表架构以适应其他应用程序的视图对基表进行更改

但是来自how to implement search for 2 different table data?

也许你是对的,它没有 工作,因为 mysql 视图不好 有索引的朋友。但还是。是 有什么可以搜索的 商店桌子?

我了解到视图不能很好地使用索引,所以它会不会对性能造成很大影响,因为它可能提供方便?

【问题讨论】:

    标签: sql mysql views


    【解决方案1】:

    这个关于索引视图的mysql-forum-thread 提供了很多关于 mysql 视图实际上是什么的见解。

    一些关键点:

    • 视图实际上只不过是一个存储的选择语句
    • 视图的数据是视图引用的表的数据。
    • 在当前版本中无法在视图上创建索引
    • 如果使用合并算法,则将使用基础表的索引。
    • 但是,底层索引是不可见的。视图上的 DESCRIBE 将不显示索引列。

    【讨论】:

    • "如果使用合并算法,那么将使用底层表的索引。" 那么什么是 TEMPTABLE 呢?
    • 我不知道。希望其他人提供答案。
    • 在视图中无法使用临时索引,也不会使用原始表中的索引。在这里阅读更多:dev.mysql.com/doc/mysql-reslimits-excerpt/5.6/en/…
    • @understack 验证其内容并编辑答案,如果您发现任何错误,按照今天。
    【解决方案2】:

    可以简单地将视图视为永久存储在服务器上的 SQL 查询。将使用查询优化到的任何索引。从这个意义上说,SQL 查询或视图之间没有区别。它不会比实际的 SQL 查询更负面地影响性能。如果有的话,因为它存储在服务器上,并且不需要在运行时进行评估,它实际上更快。

    它确实为您提供了这些额外的优势

    • 可重用性
    • 优化的单一来源

    【讨论】:

      【解决方案3】:

      view 的另一个缺点是不能很好地与 mysql 复制器配合使用,并且会导致 master 稍微落后于 slave。

      http://bugs.mysql.com/bug.php?id=30998

      【讨论】:

        【解决方案4】:

        根据http://www.mysqltutorial.org/introduction-sql-views.aspx

        数据库表不应该有计算列,但是数据库视图应该

        当我需要计算总数、计数等时,我倾向于使用视图。

        希望有所帮助!

        【讨论】:

          【解决方案5】:

          根据官方的 MySQL documentation,MySQL 视图是存储的查询,在调用时会产生结果集。

          数据库视图只不过是一个虚拟表或逻辑表(通常由带有连接的 SELECT 查询组成)。因为数据库视图类似于数据库表,由行和列组成,因此您可以根据它查询数据。

          应在以下情况下使用视图:

          • 简化复杂查询(如 IF ELSE 和 JOIN 或使用触发器等)
          • 增加额外的安全层并限制或限制数据访问(因为视图只是虚拟表,可以将特定的数据库用户设置为只读并限制 INSERT)
          • 向后兼容性和查询可重用性
          • 使用计算列。计算列不应位于 DB 表上,因为 DB 架构设计不佳。

          在以下情况下不应使用视图:

          • 关联表是暂定的或经常发生结构变化。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-12
            • 2017-08-29
            • 2010-11-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-21
            • 1970-01-01
            相关资源
            最近更新 更多