Mysql事务

事务的基本概念

事务(Transation):作为一个单独单元的一个或者多个sql语句组成。这个单元中的每一个sql语句都是相互依赖的,而且单元作为一个整体是不可分割的。如果单元中的一个语句不能成功完成,整个单元就会回滚。所有影响到的数据库将返回事务开始以前的状态。因此,只有事务中所有语句都被成功的执行才能说整个事务被成功执行。

事务与ACID属性:

  • 原子性Atomicity
  • 一致性Consistency
  • 孤立性Isolation
  • 持久性Durability

事务的生命周期:

通过start transaction/begin/begin work语句开始,以commit或rollback语句结束。

事务隔离级别

事务的隔离级别数据安全性从高到低,性能从低到高分为以下四个:

  • serializable 序列化隔离:按顺序执行事务。
  • repeatable read 可重复读(Mysql默认):事务开启后,就算别的事务修改了原来的数据,也不会影响当前事务的数据。
  • read committed 提交读:事务开启后,别的事务提交后修改了原来的数据,当前事务在修改数据后会读取别的事务修改后的数据。
  • read uncommitted 未提交读:事务开启后,别的事务修改了数据还未提交,当前事务也会读取到修改后的数据。如果别的事务回滚了,当前事务就读取到了错误的数据。
-- 查询全局的或者本次连接session的隔离级别
select @@global.tx_isolation,@@session.tx_isolation;
-- 修改隔离级别
set session transaction isolation level serializable;

事务性能

使用事务表时,提高性能的一些方法:

  • 使用小事务
  • 选择合适的隔离级别,平衡性能、安全性。
  • 保证开始事务前一切都是可行的
  • 避免死锁

锁:表锁定、页锁定、行锁定。

-- 对表xxx进行read锁  使各个链接对表可以读而不能写
lock table xxx read;
-- 对表xxx进行write锁  是当前链接对表可以读写、别的链接不能操作
lock table xxx write;
-- 解锁
unlock table xxx;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 事务是指一组数据库操作,这些操作要么全部执行,要么全部不执行,其目的是保证在并发环境下,数据的一致性和完整性。MySQL 事务具有 ACID 性质,即原子性、一致性、隔离性和持久性。 MySQL 中使用事务需要使用 BEGIN、COMMIT 和 ROLLBACK 语句,其中 BEGIN 表示开启一个事务,COMMIT 表示提交事务,ROLLBACK 表示回滚事务事务的基本语法如下: ``` BEGIN; -- 执行一组数据库操作 COMMIT; -- 提交事务 -- 或者 ROLLBACK; -- 回滚事务 ``` 在 MySQL 中,事务的隔离级别分为四个等级,分别是 Read Uncommitted、Read Committed、Repeatable Read 和 Serializable。隔离级别越高,数据的一致性和完整性越高,但同时也会影响数据库的性能。 MySQL 事务的 ACID 性质有以下含义: 1. 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部失败回滚,不会只执行其中的一部分操作。 2. 一致性(Consistency):事务执行前后,数据库中的数据必须保持一致性状态,即满足数据库的约束条件和完整性规则。 3. 隔离性(Isolation):事务之间应该是相互隔离的,一个事务的执行不应该被其他事务干扰,保证事务之间的数据相互独立。 4. 持久性(Durability):事务提交后,对数据库的修改应该是永久性的,即使出现系统故障或电源故障,也不应该对数据产生影响。 总之,MySQL 事务是一组数据库操作,具有 ACID 性质,可以通过 BEGIN、COMMIT 和 ROLLBACK 语句来实现,隔离级别越高,数据的一致性和完整性越高,但同时也会影响数据库的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值