Mysql事务相关

事务

MySQL的事务的四大特性(ACID):具体的概念网上资料一大把

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

因为事务隔离性的不同,可能产生一下数据相关问题:具体的概念网上资料一大把

  1. 脏写
  2. 脏读
  3. 不可重复读
  4. 幻读

所以MySQL根据隔离性,把事务分为几个级别:具体的概念请百度

  1. 读未提交
  2. 读已提交
  3. 可重复读
  4. 串行化

锁解读

表锁:锁住整个表,一般用于数据库迁移

  • 读锁:读操作(自己session和其他session),写操作(自己session会报错,其他session会阻塞)
  • 写锁:读,写操作(自己session都可以,其他session都会阻塞)

行锁:锁住数据库表的一行记录

更新操作:自己session更新不提交,其他session更新这条数据会阻塞,更新其他数据不会阻塞

四种事务的隔离级别能够解决的问题,和不能解决的问题如图所示,具体操作自己实验 

MySQL的事务默认隔离级别是可重复读。可能产生幻读的问题。 在可重复读的隔离性的前提下,可以用间隙锁来解决幻读的问题。

锁优化:

索引方面:搜索字段尽量走索引,避免无索引字段由行锁升级为表锁,控制锁的范围,控制检索的范围,避免间隙锁

事务方面:控制事物的隔离级别,隔离级别越低,性能越高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值