数据库
文章平均质量分 96
数据库
小呆鸟_coding
阿里云专家博主,在读机器人研究生,喜欢编程,通过写文章记录自己的生活,以及学习的点点滴滴。希望我们共勉。一起努力冲向远方
展开
-
【5. 事务】
重写日志, 正如之前说的,MySQL是先把磁盘上的数据加载到内存中,在内存中对数据进行修改,再写回到磁盘上。幻读是事务A查询工资单中大于3000的一共有3人,而此时事务B又加了一条4000元进行,此时事务A读到的就是4人。:俩个写事务A,B同时对A = 0进行+1操作,结果B覆盖了A,导致最终结果是1而不是2,事务被覆盖。记录了这些回滚需要的信息,当事务执行失败或调用了rollback,导致事务需要回滚,便可以利用。,并提交,然后事务A再次查询相同的范围,两次读取得到的结果集不一样了,这就是幻读。原创 2022-11-06 11:42:06 · 336 阅读 · 0 评论 -
【4. 主从复制】
在实际工作中,经常用Redis和MySQL搭配使用,当有请求时,首先会从缓存中进行查询,如果存在就直接取出。如果不存在在访问数据库,这样就提升了读取效率,也减少了后端数据库的访问压力。一般对数据库而言都是读多写少,对于数据库的读取数据压力比较大,所以可以采用数据库集群的方案,做主从架构、进行读写分离,同样可以提升数据库并发处理能力。原创 2022-11-06 10:03:44 · 348 阅读 · 0 评论 -
【3. MySQL日志】
原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?事务的隔离性由锁机制实现。而事务的原子性、一致性和持久性由事务的redo 日志和undo 日志来保证。REDO LOG称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务 的持久性。UNDO LOG称为回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。原创 2022-11-05 22:53:57 · 215 阅读 · 0 评论 -
【2. MVCC-多版本并发控制技术】
MVCC 在、这俩个隔离级别才有效,因为这俩个情况下考虑快照(读旧数据),而剩下的读为提交和串行化,读的都是最新数据核心点在于ReadView的原理,、这两个隔离级别的一个很大不同就是生成ReadView的时机不同:在每一次进行普通SELECT操作前都会生成一个ReadView只在第一次进行普通SELECT操作前生成一个ReadView,之后的查询操作都重复使用这个ReadView就好了。原创 2022-11-05 19:51:36 · 436 阅读 · 2 评论 -
【1. MySQL锁机制】
都默认别人不会修改,所以不会上锁,在更新的时候会判断一下在此期间别人有没有去更新这个数据。如果出现行锁的时候,想加表锁,那就只能进行全表遍历,看是否有加行锁。然而事务加锁时,记录是不存在的,是无法加行锁,则需要靠间隙锁。,而可重读读只能解决脏读,不可重复读。:乐观锁一般会使用版本号机制或CAS。MySQL默认隔离级别是。意向共享锁(IS锁)意向独占锁(IX锁)原创 2022-11-05 16:32:58 · 302 阅读 · 0 评论