如果不考虑隔离性,引发一些安全问题
隔离性:一个事务的执行,不应该受到其他事务的干扰。
如果不考虑隔离性(一个事务执行受到其他的事务的干扰),引发一些安全问题,主要体现在读取数据上:
- 脏读:一个事务读到了另一个事务未提交的数据,导致查询结果不一致
- 不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致多次查询结果不一致。
- 虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致多次查询结果不一致。
解决这些安全性问题:
设置事务的隔离级别:
- read uncommitted :脏读,不可重复读,虚读都有可能发生
- read committed :避免脏读。但是不可重复读和虚读是有可能发生
- repeatable read :避免脏读和不可重复读,但是虚读有可能发生。
- serializable :避免脏读,不可重复读,虚读。
MySQL事务的隔离级别
原创a772304419 ©著作权
©著作权归作者所有:来自51CTO博客作者a772304419的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Linux上传与下载工具介绍
下一篇:MySQL数据库事务的特性
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
更改mysql的事务隔离级别 mysql事务隔离级别 默认
对于数据库的隔离级别之前一直没有做详细整理,最近项目运行中发现了一个问题,所以抽时间对这块认真研究了下业务场景:服务A在处理流程中,会调用外部服务B,然后写入一条数据,服务B执行完成后,会回调服务C的接口更新服务A写入的数据。问题:在服务B回调服务C的时候总是找不到服务A写入的数据,在服务C中添加延时重试,问题依然存在,但此时查看数据库,对应的数据是已经存在。先说原因吧,是因为MyS
更改mysql的事务隔离级别 mysql 默认事务隔离级别 同一个事务里面对同一条数据做2次修改 提交事务 数据