zoukankan      html  css  js  c++  java
  • MySQL存储过程

    存储过程的优点:

    1、存储过程可以随时修改,并且不会影响程序源代码,不用重启服务,而且如果在不同的系统里面调用同一条sql语句,这时,用存储过程再好不过了。

    2、存储过程是预编译的,第一次调用后优化器对其进行优化分析,并且给出最终被存储在系统表中的执行计划;而平常的sql语句,每一次执行都要进行编译和优化,速度相对会慢一点。

    3、存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

    4、就安全来说,存储过程可以设置对相应数据的访问权限,可以限制非授权用户对数据的访问,保证了数据的安全性。

    5、存储过程可以执行一系列sql语句,而且还可以调用其他的存储过程,这样可以简化一些复杂的语句。

    6、存储过程运行在服务器上,这样就减少了客户机的压力。

    7、复杂的业务逻辑需要多条 SQL 语句,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会减少,降低了网络负载。

    存储过程的缺点:

    1、使用存储过程,不便于系统的迁移。

    2、修改存储过程是在数据库层面进行,出现异常在代码中不能捕获,出现问题较难排查(不便于调试),这时就需要依赖于DBA。

    3、存储过程不太适合面向对象的设计,业务逻辑都在存储层实现,增加了业务和存储的耦合性,代码可读性也会降低。

    总结:

    是否使用存储过程,看查询语句的业务需求,最好不要使用大量的存储过程;一些不常改变、批量查询的操作,可以使用存储过程

  • 相关阅读:
    (原)ubuntu16在torch中使用caffe训练好的模型
    (原)Ubuntu16中卸载并重新安装google的Protocol Buffers
    (原)lua提示cannot load incompatible bytecode
    (原)ubuntu上安装nvidia及torch的nccl
    Ubuntu修改grub菜单引导选项和等待时间
    Servelet 简介
    JAVA JUC 线程池
    JAVA JUC synchronized 锁的理解
    JAVA JUC 读写锁
    JAVA JUC 线程按顺序执行
  • 原文地址:https://www.cnblogs.com/java-spring/p/9700271.html
Copyright © 2011-2022 走看看