文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql事务知识点分析

2024-04-02 19:55

关注

这篇文章主要讲解了“mysql事务知识点分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql事务知识点分析”吧!

1.  事务

1.1.  事务的特性

InnoDB存储引擎支持事务,默认自提交模式,如要开启事务,必须以begin命令开始,以commit或者rollback结束。

事务特性

l  原子性(Atomiity):要么都做,要么都不做。

l  一致性(Consistency):操作前后满足业务规则约束。

l  隔离性(Isolation):多个并发事务互不影响。

l  持久性(Durabili):事务结束,对数据的修改是持久的。

1.2.  事务语句

事务开启语句由begin或start transaction(read write|read only)命令开始,结束用commit或rollback显示结束。

隐式提交:DDL操作或再次输入begin和start transaction命令。

隐式回滚:退出会话、连接超时、关机等。

关闭自提交特性(set autocommit=0)

开启自提交特性(set autocommit=1)

关闭自动提交好处:不用一个事务一次提交,多个事务一起体骄傲,提高处理能力。

关闭自提交坏处:如一事务长期不提交,导致行锁等待,影响数据库TPS值。

不建议关闭自提交模式。

1.3.  truncate和delete的区别

truncate 是DDL,事务中不能回滚,会清空表的自增属性,回到原始开始值。

delete是DML

共同点:清空表内数据,

1.4.  事务的隔离级别

SQL标准的4钟隔离级别

n  读未提交(read uncommitted),RU,一个事务可以读取到其他事务未提交的数据变化,叫脏读,生产环境不建议使用。

n  读已提交(read committed),RC,一个事务可以读其他事务已提交的数据变化,叫不可重复读,是Oracle默认事务隔离级别。

n  可重复读(repetable read),RR,一个事务中,直到事务结束前,都可以反复读取到事务刚开始时看到的数据,并一直不发生变化,避免了脏读、不可重复读、幻读现象的发生。mysql默认事务隔离级别。

n  串行(serializable),在每个读的数据行上都加表级共享锁,在每次写数据时都要加表级排他锁。造成InnoDB的并发能力下降、大量超时和锁竞争的发生,不建议用到生产环境。

查看当前库隔离级别

[mysql]>show variables like '%tx_isolation%';

+---------------+-----------------+

| Variable_name | Value           |

+---------------+-----------------+

| tx_isolation  | REPEATABLE-READ |

+---------------+-----------------+

修改全局或当前会话的事务隔离级别

set global|session transaction isolation level

1.5.  脏读、不可重复读、幻读、可重复读

1.5.1.  脏读

RU,一个事务读取别的事务未提交的数据。

1.5.2.  不可重复读与幻读

不可重复读:一个事务读取到其他事务针对旧数据的修改记录,常见(update,delte)。

幻读:一个事务读取到其他事务新增数据,常见(insert),允许出现在已提交事务的隔离级别中。

1.5.3.  可重复读

可重复读是mysql默认事务隔离级别,消除脏读、不可重复读、幻读等现象,很好保证事务的一致性。

如在本事务想读取别的新增数据,可如下:

查询:select * from t for update;

本事务提交一次:commit;

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

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯