简述mysql的存储的优点_MySQL 存储过程 优点和缺点有哪些?
存储过程的优点主要包括以下几点:
第一点,性能提高。这是相对于不适用存储过程来说的,因为存储过程在创建的时候就编译好了,而后每次调用都不会再次编译,这相对于传统的SQL语句中每次调用都需要编译的情况来说,性能提高了何止一点两点。
第二点,重用性强。存储过程使用名字即可使用,也就是传说中的“一次编写,随便调用”。这样不仅提高了重用性,还减少了出错的几率,也会加快开发速度,可以说是一件非常好的事情。
第三点,减少网络流量。这一点对于小数据量的时候一般体现不出来,那么当数据量较大的时候,我们会发现由于使用存储过程比使用SQL语句会使用更少的字节数,因此它会降低传输的数据量。
第四点,安全性提高。由于存储过程也可以使用权限控制,而且参数化的存储过程可以防止SQL注入攻击,也在一定程度上保证了安全性。
第五点,灵活性增强。由于存储过程可以使用流程控制语句来编写,导致它有着很强的灵活性,可以根据实际情况来执行不同的SQL语句,而不是只能单纯的简单的执行命令。而且该存储过程还可以修改其逻辑而其他部分不用改变,也就是说,我们的表的结构改变了,我们只需要修改相应的存储过程即可,我们的Java或者PHP等程序不需要改变。
第六点,当业务复杂的时候,存储过程会减少工作量,为什么呢,原因很简单,如果我们不适用存储过程,那么就会导致我们先从数据库中取出来数据,然后经过计算,再放入到数据库中,这个开销还是蛮大的,这中间的开销包括我们的Java或者PHP程序连接数据库获取结果集等若干操作,如果我们使用了存储过程,那么就没有那么多事了,直接在mysql内就搞定了。
缺点:
第一点,工作量加大。这里并不是说我们把程序该做的事让mysql去做不好,而是mysql本身并没有很像样的IDE来开发我们的存储过程,我们很多时候还是需要手写,这样就会比较麻烦,而且存储过程的调试也是一个问题,没有很像样的调试工具。
第二点,优势不明显。运行速度上,对于大多数的语句缓存来说,编译sql的时间开销并不是很大,但是执行存储过程还需要检查权限等一些其他开销,所以,对于很简单的sql,存储过程并没有很大优势。
第三点,赘余功能。对web程序来说,我们连接数据库的用户往往就是同一个,不需要太多的安全机制,所以,对于安全上的检测看上去很好,实际上优点多余。
第四点,小型程序完全无用。对于小型web应用来说,它的使用价值就更小了,反而会拖累开发进度。
第五点,对于运维上。当我们的程序要更换数据库的时候,它的移植性相对于不适用存储过程要复杂一些,对于维护上,由于是在db端,因此比server端的程序更好维护一些。
简述mysql的存储的优点_MySQL 存储过程 优点和缺点有哪些?相关推荐
- 简述mysql的存储的优点_SQL存储过程简介及优点
存储过程是SQL语言中的一种,在大型的数据库系统中,一系列为了达到某种特定功能的SQL语句.经过重新编译之后存储在数据库中,再通过指定的名字,并且提供参数来执行它. 一.SQL Server 存储过程 ...
- MySQL指定存储引擎命令_MySQL常用指令(2)——存储引擎
MySQL常用指令(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&q ...
- mysql 存过 if语句_mysql存储过程 if 语句
MySql的存储过程 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存 ...
- mysql可以存储标点么_MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》...
数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. s ...
- mysql数据存储7天_MySQL开启binlog并且保存7天有效数据
开启binlog日志(在[mysqld]下修改或添加如下配置): server-id=1 log-bin=mysql-bin binlog_format=MIXED binlog日志模式 Mysql复 ...
- mysql数据存储和函数_MySQL数据库——存储和函数
一.存储过程 1 基本语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 格式 ...
- mysql改存储引擎教程_MySQL中修改数据表存储引擎的三种方法
第一种方法:ALTER TABLE 将表从一个引擎修改为另一个引擎最简单的办法是使用ALTER TABLE语句,转换表的存储引擎会导致失去原引擎相关的所有特性. 例:将mytable的引擎修改为Inn ...
- mysql数据库存储引擎选择_MySQL数据库性能优化之存储引擎选择
的存储引擎可能是所有关系型产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系. Eb$d8lR;Tw0由于各存储引擎功能特性差异较大, ...
- mysql中存储gis数据类型_mysql 中的数据类型
类型说明 取值范围 tinyint[(m)] 有符号值:-128 到127(- 27 到27 - 1) 无符号值:0到255(0 到28 - 1) 1个字节 smallint[(m)] 有符号值:-3 ...
最新文章
- Something needs to be forgotten.
- 其实你做的大部分工作都是浪费
- junit进行测试加载多个spring配置文件
- 解决方案仅用于执行startup.bat启动时乱码解决
- java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
- 害怕运维做到30岁还一事无成?你应该来这里看看
- 数学小技巧(模拟)求1/n
- RoboCode的Intellij环境搭建
- 美国国家安全局(NSA)网络攻击主战武器“验证器”
- win7自带照片查看器
- Linux的基础知识(2)-权限命令
- Padavan老毛子的二级路由,怎样设置与主路由在同一网段
- ftp软件绿色版,四款好用的绿色版ftp软件
- 免费离线PDF工具箱,PDF工具大全,PDF合并PDF加密PDF解密PDF格式转换PDF分割PDF旋转以及从PDF中提取图片,满足对PDF操作的一切需求~完全免费无使用次数限制,文末附下载链接~
- react render相关 【类组件、函数组件 】
- Java8--20道关于Stream流的题目练习
- 通过PC获取Tello无人机视频图像和发送控制命令
- DELL笔记本更换内存条
- 华为软件测试通信基础,【华为软件测试工程师面试】面试软件测试和通信相关的题目。-看准网...
- 在线工作坊 | 人工智能之 AI on Azure
热门文章
- vue -devtool
- [内附完整源码和文档] 基于Java实现的数独游戏
- 使用java映射根据属性名得到set和get方法
- selenium原理python_从python角度解析selenium原理
- mysql8.0更改用户密码
- 安卓服务器又维护了,数据互通|安卓部分区服服务器数据互通维护公告
- tp5点击事件显示弹窗
- Postmant简单介绍(小兔子吃白菜)
- Nginx安装配置与SpringBoot项目整合
- 360 se html document html,360浏览器使用meta标签强制使用指定内核