ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 基础(事务)

2022-05-12 15:04:05  阅读:175  来源: 互联网

标签:事务 隔离 数据 READ isolation 基础 mysql 级别


事务四大特性:
原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

并发事务问题:
两个及以上事务同时操作一个数据库或表时所引发的问题
脏读:读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据
不可重复读:不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务改了这批数据并提交了。通常针对数据更新(UPDATE)操作
幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。针对数据插入(INSERT)操作

事务隔离级别:是用来解决并发事务问题的,事务隔离级别越高数据越安全但性能越低

隔离级别 脏读 不可重复读 幻读
Read uncommitted(读未提交)
Read committed(读已提交) x
Repeatable Read(mysql默认) x x
Serializable(串行化) x x x

查看隔离级别:

MySQL5.0+:
1.查看当前会话隔离级别
select @@tx_isolation;
2.查看系统当前隔离级别
select @@global.tx_isolation;

MySQL8.0+:
1.查看当前会话隔离级别
select @@transaction_isolation;
2.查看系统当前隔离级别
select @@global.transaction_isolation;

设置隔离级别:
1.当前会话修改
set session transaction isolation level 需要设置的事务隔离级别;
2. mysql.ini配置修改
#可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
[mysqld]
transaction-isolation = REPEATABLE-READ

 

标签:事务,隔离,数据,READ,isolation,基础,mysql,级别
来源: https://www.cnblogs.com/l-zl/p/16262341.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有