账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    MYSQL视图的缺点是什么?什么时候选择视图,什么时候选择储存过程?
    37
    0

    关于MYSQL中的视图的缺点是什么?

    储存过程在什么时候用的到?

    万能segmentfault,给我力量吧。

    2
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 给我看得见的在乎 普通会员 1楼

      MySQL视图的缺点主要体现在以下几个方面:

      1. 易于理解性:视图的设计目的是隐藏和简化数据库中的数据,使其更加易于理解和查询。然而,视图的设计往往需要深入的理解和分析,特别是在处理复杂数据结构、复杂查询和大量数据时,这些理解和分析可能变得困难和复杂。这意味着,对于非熟练的开发人员来说,创建和维护视图可能会花费大量的时间和精力。

      2. 查询性能:视图的查询性能通常比直接查询表的数据要低,因为它们不能直接获取表中的数据,而是通过从其他表中获取数据来实现。这意味着,当需要查询视图中的数据时,需要先查询到其他表中的数据,这可能会导致查询的延迟和性能问题。在处理大量数据或者需要频繁查询视图中的数据时,视图的性能可能会成为性能瓶颈。

      3. 可扩展性:视图的可扩展性较差,因为它们是由一个或多个存储过程定义的,存储过程可以被修改或删除,而视图的数据则不能被修改或删除。这使得视图不能被频繁地修改或扩展,从而影响了其性能和稳定性。对于需要频繁修改或扩展的场景,如数据清洗、数据整合或数据报告,可能需要使用更复杂的数据结构和数据库操作,如存储过程和子查询,而不是视图。

      4. 保护数据:视图通常被设计为只对特定用户或应用程序可见,而这些用户或应用程序可能只访问视图中的部分数据或不完整的数据。这在需要保护敏感数据的场景中非常有用,但也可能导致数据的泄露或篡改。如果视图中的数据被意外修改或删除,可能会导致数据的不完整或者误导性。

      5. 易于维护:视图的维护通常比直接查询表的数据要简单,因为它们不需要与表的数据结构和索引相关联,可以直接从视图中获取数据。然而,视图的设计和维护也需要深入的理解和技能,如数据清理、视图的嵌套、视图的优化和更新等。如果视图的设计和维护不善,可能会导致数据的错误和混乱,影响应用程序的性能和稳定。

      因此,选择视图或储存过程主要取决于以下几个因素:

      1. 数据结构和查询需求:如果数据结构简单,且查询需求明确,可以选择创建视图。如果需要处理复杂的查询,或者需要在多个表中查询数据,或者需要访问大量的数据,那么可能需要创建储存过程。

      2. 数据安全和保护:如果需要保护敏感数据,或者数据的修改和删除可能会导致数据的不完整或误导性,那么可以选择创建视图。如果数据的修改和删除是偶发的,或者视图的数据是临时的,那么可能不需要创建视图。

      3. 稳定性和可扩展性:如果应用程序的性能和稳定性要求高,或者需要频繁地修改和扩展数据,那么可能需要创建储存过程。如果数据的修改和删除是基本的,或者视图的数据是稳定的,那么可能不需要创建视图。

      4. 技能和经验:视图和储存过程的设计和维护需要深入的理解和技能,包括数据清理、视图的嵌套、视图的优化和更新等。如果开发人员没有相关的技能和经验,可能需要从其他人员或开发者那里获取帮助,或者选择更复杂的查询和数据结构。

      5. 系统性能和资源使用:视图和储存过程的执行可能会占用系统资源,如CPU、内存和磁盘空间。如果系统资源有限,或者应用程序的性能要求高,可能需要考虑使用缓存、分区或者只读视图等方式来优化视图和储存过程的执行,以减少系统资源的使用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部