![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql深入
花落的速度
whatever is worth doing is worth doing well
展开
-
mysql MDL读写锁阻塞,以及online ddl造成的“插队”现象
看mysql45讲遇到一个问题为什么C等待拿锁之后,D也会阻塞?其实这里并没有解释清楚。因为如果按并发理解的话,C,D应当是同等级,都有可能拿到锁的。但C读写锁互斥,D读读不互斥,这样的话就跟上图所述相悖了。就,查了一下。(鸣谢 一梦如是YFL提供的文章)首先是MDL(metaData Lock)的概念。元数据锁是server层的锁,表级锁,主要用于隔离DML(Data Ma...原创 2019-07-18 14:27:26 · 9579 阅读 · 25 评论 -
读可重复隔离级别下多session ddl操作的事务隔离与可见问题一例
研究mysql45讲时的又一个实验,灵感来自08讲的思考题。多session下可能会造成的不一致问题。过程如下实验条件:Mysql,innoDB表t初始数据如下 id c Line1 1 1 Line2 2 ...原创 2019-07-22 20:19:31 · 253 阅读 · 0 评论 -
Mysql insert语句执行原理
加锁流程一直很迷,尤其几个session搅在一起。自以为的初窥门径其实根本不值一提。今天碰巧搜到有大佬从源码层面分析insert加锁,就顺便记一下。原文博客:https://www.aneasystone.com/archives/2018/06/insert-locks-via-mysql-source-code.html附前提知识讲接链接:锁的种类-Mysql官方文档 常...原创 2019-09-06 16:11:09 · 5055 阅读 · 0 评论 -
mysql5.7 为什么刚要死锁立刻就会报错而无需等待超时?
问题起因自己做了个人造死锁的小实验: Session1 Session2 Begin; Select * from t where id=1 lock in share mode; Begin; ...原创 2019-09-09 18:56:39 · 494 阅读 · 0 评论