<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ByLir的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ByLir</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ByLir]]></copyright><item><title><![CDATA[SpringAOP的简单使用与原理解析]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/134426987</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/134426987</guid><author>ByLir</author><pubDate>Wed, 15 Nov 2023 19:41:37 +0800</pubDate><description><![CDATA[springAOP的简单使用与原理解析]]></description><category></category></item><item><title><![CDATA[MySQL中唯一索引和非唯一索引加锁范围总结]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/131014279</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/131014279</guid><author>ByLir</author><pubDate>Fri, 02 Jun 2023 21:17:59 +0800</pubDate><description><![CDATA[如果查询没有命中索引，则退化为表锁]]></description><category></category></item><item><title><![CDATA[MySQL中的幻读]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/130901620</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/130901620</guid><author>ByLir</author><pubDate>Sat, 27 May 2023 15:18:31 +0800</pubDate><description><![CDATA[MySQL的默认隔离级别可重复读很大程度上解决了幻读问题。在快照读情况下是通过MVCC解决的，在第一次执行查询语句时生成一张Read View，后续每次快照读都是读这张Read View。在当前读情况下是加锁来解决的，会阻塞其他事务的当前读，从而避免幻读。然而可重复读并不能完全解决幻读，当一个事务里面使用快照读之后又使用当前读的话就还是会出现幻读。]]></description><category></category></item><item><title><![CDATA[JAVA并发编程实战读书笔记-1]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/127499547</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/127499547</guid><author>ByLir</author><pubDate>Mon, 24 Oct 2022 20:08:14 +0800</pubDate><description><![CDATA[java并发编程实战读书笔记]]></description><category></category></item><item><title><![CDATA[Mybatis源码解析]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/125266232</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/125266232</guid><author>ByLir</author><pubDate>Mon, 13 Jun 2022 20:00:03 +0800</pubDate><description><![CDATA[MyBatis简而言之就是一个数据库框架，一种用于简化JDBC开发的持久层框架，使用一个框架，我们不仅要知其然更要知其所以然]]></description><category></category></item><item><title><![CDATA[Mysql实战45讲读书笔记——1]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/123338037</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/123338037</guid><author>ByLir</author><pubDate>Mon, 07 Mar 2022 19:57:34 +0800</pubDate><description><![CDATA[第一讲 一条SQL查询语句是如何执行的
①连接器
连接器负责跟客户端建立连接、获取权限、维持和管理连接。
②分析器
③优化器
④执行器
    查询首先会去查找缓存，如果缓存没有才读取存储引擎，增删改操作会清空缓存

第二讲  一条更新语句是如何执行的
执行更新操作时不会立即更新硬盘，
Redolog  binlog
第三讲 事务隔离
事务隔离级别：读已提交，读未提交，可重复读，串行化
第四讲  索引
非主键索引叶子节点存储的是主键id，会回表再查找出数据
第五讲 索引
索引覆盖：如果执行的语句是selec]]></description><category></category></item><item><title><![CDATA[记一次死锁问题]]></title><link>https://blog.youkuaiyun.com/ByLir/article/details/121742017</link><guid>https://blog.youkuaiyun.com/ByLir/article/details/121742017</guid><author>ByLir</author><pubDate>Mon, 06 Dec 2021 15:09:33 +0800</pubDate><description><![CDATA[场景：有两个事务，都是更新操作，其中一个在循环里面按照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]]></description><category></category></item></channel></rss>