mysql中事务和存储过程指的是什么

mysql中,事务是用户定义的一个数据操作序列,包含了一组数据库操作命令;事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。存储过程是一组为了完成特定功能的SQL语句集合;一个存储过程是一个可编程的函数,它在数据库中创建并保存,一般由SQL语句和一些特殊的控制结构组成。

mysql中事务和存储过程指的是什么

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

mysql中的事务

数据库的事务(Transaction)是一种机制、是用户定义的一个数据操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。

在数据库系统上执行并发操作时,事务是作为最小的控制单元来使用的,特别适用于多用户同时操作的数据库系统。例如,航空公司的订票系统、银行、保险公司以及证券交易系统等。

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

  • 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

  • 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

  • 事务用来管理 insert、update、delete 语句

一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

  • 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

  • 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

  • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

  • 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

mysql中的存储过程

存储过程是存储在数据库目录中的一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用“CALL存储过程名字”即可自动完成。

常用操作数据库的 SQL 语句在执行的时候需要先编译,然后执行。存储过程则采用另一种方式来执行 SQL 语句。

一个存储过程是一个可编程的函数,它在数据库中创建并保存,一般由 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的特定功能时,存储过程尤为合适。

MySQL 5.0 版本以前并不支持存储过程,这使 MySQL 在应用上大打折扣。MySQL 从 5.0 版本开始支持存储过程,既提高了数据库的处理速度,同时也提高了数据库编程的灵活性

存储过程是数据库中的一个重要功能,存储过程可以用来转换数据、数据迁移、制作报表,它类似于编程语言,一次执行成功,就可以随时被调用,完成指定的功能操作。

使用存储过程不仅可以提高数据库的访问效率,同时也可以提高数据库使用的安全性。

对于调用者来说,存储过程封装了 SQL 语句,调用者无需考虑逻辑功能的具体实现过程。只是简单调用即可,它可以由触发器,其他存储过程以及Java, Python,PHP等应用程序调用。

MySQL存储过程的优点

  • 通常存储过程有助于提高应用程序的性能。一旦创建,存储过程就会被编译并存储在数据库中。但是,MySQL实现的存储过程略有不同。MySQL存储过程是按需编译的。编译存储过程后,MySQL将其放入缓存并为每个连接维护自己的存储过程缓存。如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则,存储过程的工作方式类似于查询。

  • 存储过程有助于减少应用程序和数据库服务器之间的流量,因为应用程序必须只发送存储过程的名称和参数,而不是发送多个冗长的SQL语句。

  • 存储过程对任何应用程序都是可重用且透明的。存储过程将数据库接口公开给所有应用程序,以便开发人员不必开发存储过程中已经支持的功能。

  • 存储过程是安全的。数据库管理员可以为访问数据库中的存储过程的应用程序授予适当的权限,而无需为基础数据库表提供任何权限。

感谢各位的阅读,以上就是“mysql中事务和存储过程指的是什么”的内容了,经过本文的学习后,相信大家对mysql中事务和存储过程指的是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章标题:mysql中事务和存储过程指的是什么,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/29783

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月26日 上午1:43
下一篇 2022年9月26日 上午1:44

相关推荐

  • MySQL中的查询优化器怎么用

    对于一个SQL语句,查询优化器先看是不是能转换成JOIN,再将JOIN进行优化 优化分为:1. 条件优化,2.计算全表扫描成本,3. 找出所有能用到的索引,4. 针对每个索引计算不同的访问方式的成本,5. 选出成本最小的索引以及访问方式 一、开启查询优化器日志 — 开启set optimizer_…

    2022年9月15日
    52100
  • imazing提示类型初始值设定项引发异常怎么解决

    imazing提示类型初始值设定项引发异常解决方法 1、类型初始值设定项引发异常的问题一般会出现在程序开发运行时,导致程序无法运行。 2、因此如果我们要从根本上解决这个问题需要对程序文件进行编辑操作。 3、但是对于普通人来说,我们不需要进行这么麻烦的操作,只需要重新下载安装软件就可以解决了。 4、立…

    2022年9月16日
    80900
  • SQL注入类型是什么

    前言 SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注。 可显注入 攻击者可以直接在当前界面内容中获取想要获得的内容。 报错注入 数据库查询返回结果并没有在页面中显示,但是应用程序将数据库报错信息打印到了页面中,所以攻击者可以构造数据库报错语句,从报错信息中…

    2022年9月6日
    66600
  • 如何进行Apache Solr JMX服务RCE漏洞复现

    0x00简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 该漏洞源于默认配置文件solr.in.s…

    2022年9月13日
    50700
  • html的缩进属性介绍

    在html中,缩进属性是“text-indent”属性;该属性用于规定文本块中首行文本的缩进,只需将属性值设置为合理的大小即可,若属性值为正值,则首行会被缩进到右边,若属性值为负值,则首行会被缩进到左边,语法为“<element style=”text-indent:属性值&#82…

    2022年9月13日
    2.4K00
  • 开源WEB应用防火墙jxwaf怎么用

    jxwaf jxwaf(锦衣盾)是一款基于openresty(nginx+lua)开发的下一代web应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统WAF无法对业务安全进行防护的痛点。内置的语义分析引擎配合机器学习引擎可以避免传统WAF规则叠加太多导致速度变慢…

    2022年9月24日
    54500
  • win10有没有32位版本

    win10有32位版本;windows有32位和64位的版本,32位最大只支持4GB大小内存,当电脑的内存大于4G的话,则必须安装64位的系统,32位是指在操作系统针对32位的cpu设计,就是CPU处理器一次性能处理32位也就是4字节的数据。 本教程操作环境:windows10系统、DELL G3电…

    2022年9月2日
    75300
  • windows deepl如何翻译文档

    deepl翻译文档的方法 1、进入deepl官网。 2、点击这里的翻译文件,里面可以看到能翻译的文档格式。 3、点击后把你要翻译的文档拖到对话框里或者按照提示上传文件。 4、上传后选择目标语言。 5、点击翻译按钮。 6、等翻译好之后点击下载到本地就可以打开查看了。 以上就是关于“windows de…

    2022年9月26日
    52300
  • 怎么用teamviewer远程控制正在初始化显示参数

    teamviewer远程控制正在初始化显示参数: 1、如果你的电脑上有什么桌面整理大师,或者壁纸软件等桌面软件的话,请彻底关闭后,再重新连接。 2、如果通过远程桌面方式运行了teamview被控端也会出现这个现象。所以不要通过远程桌面进行启用。 3、在你用win远程桌面安装tw后,启动的tw里面因为…

    2022年9月5日
    91100
  • 使用ZoomEye寻找APT攻击的示例分析

    ZoomEye线上的数据是覆盖更新的模式,也就是说第2次扫描如果没有扫描到数据就不会覆盖更新数据,ZoomEye上的数据会保留第1次扫描获取到的banner数据,这个机制在这种恶意攻击溯源里其实有着很好的场景契合点:恶意攻击比如Botnet、APT等攻击使用的下载服务器被发现后一般都是直接停用抛弃,…

    2022年9月2日
    47900
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部