且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(二)

更新时间:2022-10-02 15:50:10

③. 隔离级别


  • ①. 多个事务之间隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题


MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(二)


  • ②. 隔离级别从小到大安全性越来越高,但是效率越来越低


  • ③. 事务的隔离级别总结:


MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(二)


④. 查看隔离级别:select @@tx_isolation


⑤. 设置当前mysql的隔离级别:set session transaction isolation level 隔离级别


⑥. 设置数据库系统的全局的隔离级别:set global session transaction isolation level 隔离级别


⑦. Mysql默认的事务隔离级别是可重复读,用Spring开发程序时,如果不设置隔离级别默认用Mysql设置的隔离级别,如果Spring设置了就用已经设置的隔离级别


④. 锁分类 表索、行锁、读锁、写锁


①. 从性能上分为乐观锁(用版本对比来实现)和悲观锁


②. 从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁)


读锁(共享锁,S锁(Shared)):针对同一份数据,多个读操作可以同时进行而不会互相影响


写锁(排它锁,X锁(eXclusive)):当前写操作没有完成前,它会阻断其他写锁和读锁


③. 从对数据操作的粒度分,分为表锁和行锁