存储过程的优点主要包括以下几点:

第一点,性能提高。这是相对于不适用存储过程来说的,因为存储过程在创建的时候就编译好了,而后每次调用都不会再次编译,这相对于传统的SQL语句中每次调用都需要编译的情况来说,性能提高了何止一点两点。

第二点,重用性强。存储过程使用名字即可使用,也就是传说中的“一次编写,随便调用”。这样不仅提高了重用性,还减少了出错的几率,也会加快开发速度,可以说是一件非常好的事情。

第三点,减少网络流量。这一点对于小数据量的时候一般体现不出来,那么当数据量较大的时候,我们会发现由于使用存储过程比使用SQL语句会使用更少的字节数,因此它会降低传输的数据量。

第四点,安全性提高。由于存储过程也可以使用权限控制,而且参数化的存储过程可以防止SQL注入攻击,也在一定程度上保证了安全性。

第五点,灵活性增强。由于存储过程可以使用流程控制语句来编写,导致它有着很强的灵活性,可以根据实际情况来执行不同的SQL语句,而不是只能单纯的简单的执行命令。而且该存储过程还可以修改其逻辑而其他部分不用改变,也就是说,我们的表的结构改变了,我们只需要修改相应的存储过程即可,我们的Java或者PHP等程序不需要改变。

第六点,当业务复杂的时候,存储过程会减少工作量,为什么呢,原因很简单,如果我们不适用存储过程,那么就会导致我们先从数据库中取出来数据,然后经过计算,再放入到数据库中,这个开销还是蛮大的,这中间的开销包括我们的Java或者PHP程序连接数据库获取结果集等若干操作,如果我们使用了存储过程,那么就没有那么多事了,直接在mysql内就搞定了。

缺点:

第一点,工作量加大。这里并不是说我们把程序该做的事让mysql去做不好,而是mysql本身并没有很像样的IDE来开发我们的存储过程,我们很多时候还是需要手写,这样就会比较麻烦,而且存储过程的调试也是一个问题,没有很像样的调试工具。

第二点,优势不明显。运行速度上,对于大多数的语句缓存来说,编译sql的时间开销并不是很大,但是执行存储过程还需要检查权限等一些其他开销,所以,对于很简单的sql,存储过程并没有很大优势。

第三点,赘余功能。对web程序来说,我们连接数据库的用户往往就是同一个,不需要太多的安全机制,所以,对于安全上的检测看上去很好,实际上优点多余。

第四点,小型程序完全无用。对于小型web应用来说,它的使用价值就更小了,反而会拖累开发进度。

第五点,对于运维上。当我们的程序要更换数据库的时候,它的移植性相对于不适用存储过程要复杂一些,对于维护上,由于是在db端,因此比server端的程序更好维护一些。

简述mysql的存储的优点_MySQL 存储过程 优点和缺点有哪些?相关推荐

  1. 简述mysql的存储的优点_SQL存储过程简介及优点

    存储过程是SQL语言中的一种,在大型的数据库系统中,一系列为了达到某种特定功能的SQL语句.经过重新编译之后存储在数据库中,再通过指定的名字,并且提供参数来执行它. 一.SQL Server 存储过程 ...

  2. MySQL指定存储引擎命令_MySQL常用指令(2)——存储引擎

    MySQL常用指令(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&q ...

  3. mysql 存过 if语句_mysql存储过程 if 语句

    MySql的存储过程 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存 ...

  4. mysql可以存储标点么_MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》...

    数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. s ...

  5. mysql数据存储7天_MySQL开启binlog并且保存7天有效数据

    开启binlog日志(在[mysqld]下修改或添加如下配置): server-id=1 log-bin=mysql-bin binlog_format=MIXED binlog日志模式 Mysql复 ...

  6. mysql数据存储和函数_MySQL数据库——存储和函数

    一.存储过程 1 基本语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 格式 ...

  7. mysql改存储引擎教程_MySQL中修改数据表存储引擎的三种方法

    第一种方法:ALTER TABLE 将表从一个引擎修改为另一个引擎最简单的办法是使用ALTER TABLE语句,转换表的存储引擎会导致失去原引擎相关的所有特性. 例:将mytable的引擎修改为Inn ...

  8. mysql数据库存储引擎选择_MySQL数据库性能优化之存储引擎选择

    的存储引擎可能是所有关系型产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系. Eb$d8lR;Tw0由于各存储引擎功能特性差异较大, ...

  9. mysql中存储gis数据类型_mysql 中的数据类型

    类型说明 取值范围 tinyint[(m)] 有符号值:-128 到127(- 27 到27 - 1) 无符号值:0到255(0 到28 - 1) 1个字节 smallint[(m)] 有符号值:-3 ...

最新文章

  1. Something needs to be forgotten.
  2. 其实你做的大部分工作都是浪费
  3. junit进行测试加载多个spring配置文件
  4. 解决方案仅用于执行startup.bat启动时乱码解决
  5. java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
  6. 害怕运维做到30岁还一事无成?你应该来这里看看
  7. 数学小技巧(模拟)求1/n
  8. RoboCode的Intellij环境搭建
  9. 美国国家安全局(NSA)网络攻击主战武器“验证器”
  10. win7自带照片查看器
  11. Linux的基础知识(2)-权限命令
  12. Padavan老毛子的二级路由,怎样设置与主路由在同一网段
  13. ftp软件绿色版,四款好用的绿色版ftp软件
  14. 免费离线PDF工具箱,PDF工具大全,PDF合并PDF加密PDF解密PDF格式转换PDF分割PDF旋转以及从PDF中提取图片,满足对PDF操作的一切需求~完全免费无使用次数限制,文末附下载链接~
  15. react render相关 【类组件、函数组件 】
  16. Java8--20道关于Stream流的题目练习
  17. 通过PC获取Tello无人机视频图像和发送控制命令
  18. DELL笔记本更换内存条
  19. 华为软件测试通信基础,【华为软件测试工程师面试】面试软件测试和通信相关的题目。-看准网...
  20. 在线工作坊 | 人工智能之 AI on Azure

热门文章

  1. vue -devtool
  2. [内附完整源码和文档] 基于Java实现的数独游戏
  3. 使用java映射根据属性名得到set和get方法
  4. selenium原理python_从python角度解析selenium原理
  5. mysql8.0更改用户密码
  6. 安卓服务器又维护了,数据互通|安卓部分区服服务器数据互通维护公告
  7. tp5点击事件显示弹窗
  8. Postmant简单介绍(小兔子吃白菜)
  9. Nginx安装配置与SpringBoot项目整合
  10. 360 se html document html,360浏览器使用meta标签强制使用指定内核