為何存在Metadata Lock

2021-10-07 14:20:48 字數 609 閱讀 4964

為何會存在metadata lock?

-- 源自於乙個mysql的乙個bug,mysql這樣描述:

大致意思就是:在還沒有metadata lock時在主庫中session a在做乙個dml操作如 insert 而沒有提交,同時有另乙個session b對同乙個物件進行了ddl操作,如drop table;這就會導致從庫執行有誤。因為mysql的binlog是根據事務提交的先後順序來記錄的,前面的操作會導致在寫binlog時先記錄了drop,再進行insert操作;會導致從庫應用出錯。

-- 因此mysql在5.5.3版本之後引入metadata lock,只有在事務結束之後才會釋放metadata lock,這樣在事務未提交/回滾之前,無法進行ddl操作

注:dml和ddl的含義:

-- dml指資料庫操作語言,實現了基本的增、刪、查、改操作,對應關鍵字:select、update、insert、delete、merge

-- ddl指資料庫管理語言,對資料庫中的某些物件進行管理,包括關鍵字:create、alter、drop、truncate、comment、grant、revoke

-- 二者區別:dml可以手動控制事務開啟、提交、回滾;ddl操作是隱性提交的,不能rollback

宇宙中為何存在「黑洞」?

大家知道,在滿天星斗的天空中,沒有上帝的位置。要問宇宙中為什麼存在 黑洞 請教愛因斯坦與施瓦茨 karl schwarzschild 1873 1916 1915 年初,愛因斯坦發表了廣義相對論,其核心部分是由十個非線性偏微分方程組構成的所謂 引力場方程 結構複雜,精確解不易求得。1915年12 月...

宇宙中為何存在「黑洞」?

大家知道,在滿天星斗的天空中,沒有上帝的位置。要問宇宙中為什麼存在 黑洞 請教愛因斯坦與施瓦茨 karl schwarzschild 1873 1916 1915 年初,愛因斯坦發表了廣義相對論。其核心部分是由十個非線性偏微分方程組構成的所謂 引力場方程 結構複雜,精確解不易求得。1915年12 月...

SSL協議,根證書為何要儲存在客戶端

1.比較好奇,為什麼客戶端需要儲存乙個根證書 在ssl中,有客戶端,伺服器,ca認證中心 乙個機構 客服端信任ca認證中心,ca認證中心信任伺服器,那麼客戶端就信任伺服器。那麼這個就是一條信任鏈。2.以上是基本原理,具體實施起來就複雜一點 客戶端認證流程 1 伺服器生成一對金鑰,私鑰自己留著,公鑰交...