mysql 鎖的慢日誌

xuexiaogang發表於2021-12-13

自己原文公眾號: https://mp.weixin.qq.com/s/0_Sl8ok8PFu2FrjLe3THkg

在以前發表公眾號基礎上繼續完善一下mysql的dml和快取的關係。(5.7)

第二張圖也是以前的。一旦發生資料變化則沒有快取了,重新計算。那麼翻過來也可以這樣說,如果發生了重新計算,說明了資料一定有DML,也就是併發、或者非併發寫。總之一定是寫了。



今天說點不一樣的。上次我這都是在一個會話下進行的。一次偶然想法,那麼在其他會話中是不是一樣快取了呢?要知道在Oracle中 A使用者執行select * from t(t是A的)和在B使用者下執行select * from a.t這個是要硬解析,而且遊標也不一樣了。

來個實驗。先是自己會話(ID號是65) 步驟是:

1讀硬碟

2快取到了

3更新資料

4無法快取讀硬碟

5快取到了



 自己會話(ID號是67) 步驟是

1讀硬碟

2快取到了

3切換會話,而且是新的會話(因為有可能會說老的會話快取了,看能不能是吧新的會話)

4不同會話快取到了


再說一下鎖。一定是多會話。

第二個會話被第一個阻塞了22秒

結論是會話67的執行時間不記錄,只有會話69記錄了被阻塞時間。


如果超時呢?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847333/,如需轉載,請註明出處,否則將追究法律責任。

相關文章