- 博客(7)
- 收藏
- 关注
原创 MySQL中的幻读
MySQL的默认隔离级别可重复读很大程度上解决了幻读问题。在快照读情况下是通过MVCC解决的,在第一次执行查询语句时生成一张Read View,后续每次快照读都是读这张Read View。在当前读情况下是加锁来解决的,会阻塞其他事务的当前读,从而避免幻读。然而可重复读并不能完全解决幻读,当一个事务里面使用快照读之后又使用当前读的话就还是会出现幻读。
2023-05-27 15:18:31 2967 1
原创 Mybatis源码解析
MyBatis简而言之就是一个数据库框架,一种用于简化JDBC开发的持久层框架,使用一个框架,我们不仅要知其然更要知其所以然
2022-06-13 20:00:03 217
原创 Mysql实战45讲读书笔记——1
第一讲 一条SQL查询语句是如何执行的①连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。②分析器③优化器④执行器 查询首先会去查找缓存,如果缓存没有才读取存储引擎,增删改操作会清空缓存第二讲 一条更新语句是如何执行的执行更新操作时不会立即更新硬盘,Redolog binlog第三讲 事务隔离事务隔离级别:读已提交,读未提交,可重复读,串行化第四讲 索引非主键索引叶子节点存储的是主键id,会回表再查找出数据第五讲 索引索引覆盖:如果执行的语句是selec
2022-03-07 19:57:34 368
原创 记一次死锁问题
场景:有两个事务,都是更新操作,其中一个在循环里面按照id更新,另外一个按照非索引字段更新。场景再现:首先有一张user表,表的字段以及内容如下:name,age,price为非索引字段首先模拟事务1:在循环中按照id更新关闭事务自动提交 set autocommit = 0 show variables like 'autocommit' begin update user set name = 'aojie2' where id = 2 select * fro
2021-12-06 15:09:33 559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人