- 博客(4)
- 收藏
- 关注
原创 mysql事务&MVCC总结
MVCC:多版本控制协议,InnoDB是在undolog中实现的,在RR可重复读隔离级别下,在开启事务之后的第一条SELECT、UPDATE、DELETE或INSERT语句时, 会创建一个快照(read view), 将当前系统中活跃的事务记录起来;是所有数据的快照,不是当前select出的数据快照最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了InnoDB的并发度。
2023-06-13 14:00:18 137 1
原创 @Transational 事务详解
1、@Transactional注解 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。2、虽然@Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional注解应该只被应用到 public 方法上,这是由Spring AOP的本质决定的。
2023-06-12 15:53:22 3875 1
原创 知识点总结
3.如何实现最终⼀致性分布式事务?⼆阶段提交:a. 概念:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中⽌操作,参与这。b. 作⽤:主要保证了分布式事务的原⼦性;第⼀阶段为准备阶段,第⼆阶段为提交阶段;c. 缺点:不仅要锁住参与者的所有资源,⽽且要锁住协调者资源,开销⼤。⼀句话总结就是:2PC效率很低,对⾼并发很不友好。三阶段提交:a. 概念:三阶段提交协议在协调者和参与者中都引⼊超时机制,并且把两阶段提交协议的第⼀个阶段拆分成了两步:.
2021-07-20 14:57:57 118
原创 判断是否要使用缓存
需要使用缓存的场景1、读密集型的应用;2、存在热数据的应用;3、对响应失效要求较高的应用;4、对一致性要求不严格;虽然使用缓存听起来很不错,甚至非常有逼格、有技术范了。但是,下面这些情况下千万不要使用缓存:1、更新频繁,对于更新频率过高的数据,频繁同步缓存中的数据,功过相抵,甚至功不抵过;2、对一致性要求严格,比如财务系统的财务数据,这就是个一致性要求严格的情况;3、读少,没必要...
2020-03-18 12:15:56 530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人