当前位置:首页 > 数据库 > 正文内容

mysql事务的四个隔离机制理解

root5年前 (2022-01-13)数据库1609
禁止自动提交
SET AUTOCOMMIT=0 
开启自动提交
SET AUTOCOMMIT=1 

读未提交
//设置read uncommitted级别:
set session transaction isolation level read uncommitted;
读已提交
//设置read committed级别:
set session transaction isolation level read committed;
可重复读
//设置repeatable read级别:
set session transaction isolation level repeatable read;
串行化
//设置serializable级别:
set session transaction isolation level serializable;


事务隔离级别

是指两个事务之间,在一个事务修改内容的情况下,另外一个事务查询数据过程的隔离级别

读未提交:

    设事务A和事务B,

    开启事务A、开启事务B

    事务B查询某数据

    事务A更新该数据,并未提交。

    事务B查询该数据,发现与上次查询不一致

即事务在未提交的情况下,另外一个事务中是可以查询到更新后的数据


读已提交:

    设事务A和事务B,

    开启事务A、开启事务B

    事务B查询某数据

    事务A更新该数据,并未提交。

    事务B查询该数据,发现与上次查询一致

    事务A提交(commit)

    事务B查询该数据,发现与上次查询不一致

即事务在未提交的情况下,另外一个事务中是查询不到修改的数据

    事务在提交的情况下,另外一个事务中是可以查询到更新后的数据


可重复读:

    设事务A和事务B,

    开启事务A、开启事务B

    事务B查询某数据

    事务A更新该数据,并未提交。

    事务B查询该数据,发现与上次查询一致

    事务A提交(commit)

    事务B查询该数据,发现与上次查询一致

即事务在未提交的情况下,另外一个事务中是查询不到修改的数据

    事务在提交的情况下,另外一个事务中是查询不到修改的数据


串行化:

    开启任意一个事务就会锁表,开发中很少用到;



参考



扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=206

分享给朋友:

相关文章

如何解决 MySQL max_allowed_packet 错误

如何解决 MySQL max_allowed_packet 错误

修改global变量并退出session,重新登录,可行。修改数据库配置,未测试。方法/步骤先看看与这个错误相关的后台异常 :  Packet for query is too&n...

python操作数据库动态传递数据库名/数据库表出现的问题

python操作数据库动态传递数据库名/数据库表出现的问题

环境:py3/py2 依赖包:pymsql/MySQLdb开发某项时,j对项目进行安全检查,给出sql注入风险。修改代码是发现是sql语句进行了拼接。拼接的内容是数据库名/数据表名。然后我尝试了对数据库名和数据表名进行传参方式进行...

mysql启动失败 日志InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 3485

mysql报错Ignoring the redo log due to missing MLOG_CHECKPOINT betweenmysql版本:5.7.33系统版本:ubuntu16.04由于电脑突然关闭,跑在VMware里面的mys...

mysql 导出csv格式数据

mysql -e "select * from newsdb.t_hk_stock_news where id <100  ...

postgresql 导入导出sql 文件

pg_dump  -h localhost -U postgres -t tablename databasename >./test.sql导出 -t 表名  psql -d test1 -U...

postgresql 的安装使用

安装centos系统 9.6版本# Install the repository RPMsudo yum install -y https://download.postgresql.org/pub/repos/yum/repor...