![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
hjxisking
这个作者很懒,什么都没留下…
展开
-
mysql的只读事务
个人对mysql的只读事务理解1. 开启方式start transaction read onlyselect * from ....select * from ....commit;2. 开启只读事务模式之后,事务期间任何insert或者update都是不允许的3. 那么问题来了 ,这个和不开事务有什么区别?区别还是有的,如果使用的是默认的可重复读(rr:reaptable read),那么在只读事务开启后,如果重复读取某表数据,那么结果是一致的,并不会受到事务外其他数据的原创 2021-04-07 17:22:29 · 1125 阅读 · 1 评论 -
一个mysql死锁场景分析
最近遇到一个mysql在RR级别下的死锁问题,感觉有点意思,研究了一下,做个记录。涉及知识点:共享锁、排他锁、意向锁、间隙锁、插入意向锁、锁等待队列场景隔离级别:Repeatable-Read表结构如下create table t ( id int not null primary key AUTO_INCREMENT, a int not null default 0, b varchar(10) not null default '', c varcha...转载 2020-06-29 11:08:14 · 346 阅读 · 0 评论 -
使用docker搭建mysql5.7
拉取官方mysql5.7镜像docker pull mysql:5.7在本地创建mysql的映射目录mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf在/root/mysql/conf中创建 *.cnf 文件vim my.cnf[mysqld]skip-name-resolve这个配置的目的是跳过dns解析,不然连接mysql会很慢创建容器,将数据,日志,配置文件映射到本机docker run.转载 2020-08-06 16:05:40 · 200 阅读 · 0 评论 -
间隙锁详解
间隙锁(Gap Lock)是Innodb在 可重复读提交下为了解决幻读问题时引入的锁机制,(下面的所有案例没有特意强调都使用可重复读隔离级别)幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这时使用不同的行锁已经没有办法满足要求,需要对一定范围内的数据进行加锁,间隙锁就是解决这类问题的。在可重复读隔离级别下,数据库是通过行锁和间隙锁共同组成的(next-key lock),来实现的加锁规则有以下特性,我们会在后面的案例中逐一解释:1.加锁的基本单位.转载 2020-06-29 11:47:27 · 4217 阅读 · 2 评论