我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL transaction事务安全怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL transaction事务安全怎么实现

这篇文章主要介绍“MySQL transaction事务安全怎么实现”,在日常操作中,相信很多人在MySQL transaction事务安全怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL transaction事务安全怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

事务安全 transaction

事务 transaction 访问可能更新数据库中各种数据项的一个程序执行单元unit

事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成

事务基本原理

MySQL允许将事务统一进行管理(存储引擎innodb),将用户所做的操作,暂时保存起来,不直接放到数据表(更新),等到用户确认结果之后再进行操作

事务通常是自动提交,也可以手动提交

自动事务

当客户端发送一条SQL指令(写操作,增删改)给服务器的时候,服务器在执行后,不用等待用户反馈结果,会自动将结果同步到数据表

两个客户端,一个客户端执行SQL指令,另一个客户端查看执行结果

通过变量控制自动事务

mysql> show variables like 'autocommit';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit    | ON    |+---------------+-------+-- 关闭自动事务set autocommit = off;mysql> show variables like 'autocommit';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit    | OFF   |+---------------+-------+

关闭自动事务之后,一个客户端修改数据,另个一客户端看不到修改的结果

一旦关闭自动事务,就需要用户提供是否同步的命令

  • commit 提交 (同步到数据表,事务会被清空)

  • rollback 回滚 (清空之前的操作,不要了)

-- 客户端A关闭自动事务后操作数据mysql> select * from my_class;+----+--------+| id | name   |+----+--------+|  1 | 一班   ||  3 | 三班   |+----+--------+2 rows in set (0.01 sec)mysql> insert into my_class (name) values('四班');Query OK, 1 row affected (0.00 sec)mysql> select * from my_class;+----+--------+| id | name   |+----+--------+|  1 | 一班   ||  3 | 三班   ||  5 | 四班   |+----+--------+3 rows in set (0.00 sec)-- 客户端B看不到新增的 四班数据, mysql> select * from my_class;+----+--------+| id | name   |+----+--------+|  1 | 一班   ||  3 | 三班   |+----+--------+2 rows in set (0.00 sec)

客户端A执行commit 提交事务之后,客户端B就可以看到新增的数据了

通常不需要关闭自动事务,需要使用事务的时候,使用手动事务

手动事务

开始、过程、结束,都要用户手动发送事务操作指令来实现

手动事务指令

-- 1、开启事务,从这条语句开始,后面所有的语句都不会直接写入到数据表,保存在事务日志中start transaction -- 2、事务处理,多个指令构成-- 3、事务提交,结束事务commit / rollback

事务的使用

mysql> select * from my_class;+----+--------+| id | name   |+----+--------+|  1 | 一班   ||  3 | 三班   ||  5 | 四班   |+----+--------+3 rows in set (0.04 sec)mysql> select * from my_student;+----+--------+----------+------+--------+| id | name   | class_id | age  | gender |+----+--------+----------+------+--------+|  1 | 刘备   |        1 |   18 |      2 ||  2 | 李四   |        1 |   19 |      1 ||  3 | 王五   |     NULL |   20 |      2 ||  4 | 张飞   |     NULL |   21 |      1 ||  5 | 关羽   |     NULL |   22 |      2 ||  6 | 曹操   |        1 |   20 |   NULL |+----+--------+----------+------+--------+6 rows in set (0.00 sec)-- 开启事务start transaction;-- 执行事务操作,多个修改操作insert into my_class (name)values ('六班');insert into my_student (name, class_id, age, gender)values ('司马懿', 6, 26, 1);-- 提交事务commit;-- 或者回滚操作,所有数据无效清空rollback;

回滚点

当有一系列事务操作是,而其中的步骤如果成功了,没有必要重新来过,可以在某个点,设置一个记号(回滚点),然后如果后面有失败,那么可以回到这个记号的位置

-- 增加回滚点savepoint 回滚点名字;-- 回到回滚点 清空之后所有操作rollback to 回滚点名字;

一个事务处理过程中,如果有很多步骤,可以设置多个回滚点

事务的特点

ACID:

  • 原子性 automicity 一个事务是不可分割的工作单元,要么都做,要么都不做

  • 一致性 consistency 事务必须是使数据库从一个一致性状态变到另一个一致性状态

  • 隔离性 isolation 一个事务的执行,不能被其他事务干扰,操作数据的时候会锁住该条数据

  • 持久性 durability 一个事务一旦提交,他对数据库中的数据改变就是永久的

如果条件中使用了索引,会隔离一条记录;反之,通过全表检索,会锁定整个表

到此,关于“MySQL transaction事务安全怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL transaction事务安全怎么实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL transaction事务安全怎么实现

这篇文章主要介绍“MySQL transaction事务安全怎么实现”,在日常操作中,相信很多人在MySQL transaction事务安全怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL t
2023-07-02

MySQL transaction事务安全示例讲解

目录事务安全 transaction事务基本原理自动事务手动事务事务的使用回滚点事务的特点事务安全 transaction事务 transaction 访问可能更新数据库中各种数据项的一个程序执行单元unit事务由事务开始(begin
2022-06-18

mysql事务怎么实现

MySQL事务可以通过以下几种方式来实现:1. 使用BEGIN、COMMIT和ROLLBACK语句:通过在事务开始时使用BEGIN语句,然后在事务结束时使用COMMIT或ROLLBACK语句来控制事务的提交或回滚。示例:```BEGIN;
2023-10-09

MySQL innodb事务怎么实现

在MySQL中,InnoDB存储引擎默认支持事务。要实现InnoDB事务,可以按照以下步骤进行:1. 确保数据库使用的是InnoDB存储引擎。可以通过以下命令查询当前使用的存储引擎:```SHOW ENGINES;```确保InnoDB存储
2023-10-09

mysql中怎么实现并发事务

这篇文章将为大家详细讲解有关mysql中怎么实现并发事务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、更新丢失或脏写。当两个或两个以上的事务选择同一行,然后根据最初选定的值更新银行时,由
2023-06-20

jdbc怎么实现事务

JDBC可以通过以下步骤实现事务:1. 创建Connection对象:使用DriverManager.getConnection()方法创建一个Connection对象,该对象表示与数据库的连接。2. 关闭自动提交:通过调用Connecti
2023-09-07

Golang怎么实现事务

这篇文章主要介绍“Golang怎么实现事务”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang怎么实现事务”文章能帮助大家解决问题。一、什么是事务在计算机领域,事务是指一组相关的操作,这些操作
2023-07-05

云服务器安全还是本地服务器安全呢怎么回事

云服务器的安全性是由它们的系统和数据保护机制来实现的。云服务器采用了一系列的安全措施,如防火墙、入侵检测和入侵防御系统等。这些安全措施可以防止未经授权的访问和数据泄露。云服务器还可以使用加密技术来保护数据传输的安全性。此外,云服务器还提供了备份和恢复机制,以确保数据的完整性和可用性。本地服务器的安全性是由它们的物理安全
云服务器安全还是本地服务器安全呢怎么回事
2023-10-28

Mysql怎么实现全外连接

本文小编为大家详细介绍“Mysql怎么实现全外连接”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql怎么实现全外连接”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。MySql中多表查询只提供了内连接,左外连
2023-07-05

云服务器安全服务异常怎么回事

云服务器安全服务异常可能由以下几种原因导致:网络连接问题:可能是服务器连接缓慢、网络不稳定或者系统配置不正确,这都可能导致服务器安全服务异常。数据库或文件系统问题:可能是数据库或文件系统出现了错误或者故障,导致服务器无法识别或恢复数据。这时可以尝试手动修复数据或者使用备份数据库进行数据备份。防火墙或网络协议问题:服务器可能会受到防火墙或网络协议的限制,这会导致服务器安全无法正常运行,这时
2023-10-26

MySQL事务实现的方法是什么

在MySQL中,可以使用以下方法来实现事务:使用START TRANSACTION、COMMIT和ROLLBACK语句来开始、提交和回滚事务。START TRANSACTION; -- 开始事务-- 执行一系列的操作COMMIT; -
MySQL事务实现的方法是什么
2024-03-12

Java中怎么实现线程安全

Java中怎么实现线程安全,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、使用synchronized关键字synchronized关键字可以修饰方法和代码块,它的语义是
2023-06-16

云服务器安全服务异常怎么回事啊

云服务器安全服务异常可能会导致服务器宕机、数据丢失、服务不可用等问题,为了避免这种情况发生,建议您及时检查并排查安全隐患,确保服务器和数据的安全。具体的方法如下:检查云服务器运行环境:检查云服务器的配置是否正确,是否有异常的情况导致服务器异常。检查服务器配置:检查云服务器的配置,包括操作系统、数据库等。确保配置正确,避免配置错误导致服务器出现异常。检查操作系统安全:查看操作系统的安全补丁是否已经打包并安装好...
2023-10-27

编程热搜

目录