1. 程式人生 > >innodb元資料鎖解釋

innodb元資料鎖解釋

什麼是元資料鎖?

其實在mysql 5.5.3開始之後的版本,針對innodb表,任何已經開始的事務將一直持有元資料鎖,一直到事務提交,另外使用alter對錶結構進行修改的時候,也會持有元資料鎖,直到alter語句結束。

1、建立一張innodb引擎的測試表


插入2行資料

mysql> insert into db1 values(1,'小明'),(2,'小剛');

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0


2、開啟A事務,進行對錶查詢


3、開啟B事務,對錶結構進行修改


可以看到alter

語句被阻塞

4、執行show processlist;看到當前執行緒


小結:

A事務中的select操作個db1表添加了元資料讀鎖,在B事務中alter table操作對db1表添加了元資料寫鎖,只有當A事務提交或者回滾,才會釋放元資料讀鎖,B事務的alter操作才可以繼續執行。


之前看到另外博主遇到MySQL版本為5.5,表是myisam引擎,做ddl時出現了Waiting for table metadata lock,myisam是非事務引擎,這個典型是一個問題,值得深思。

http://blog.csdn.net/cug_jiang126com/article/details/51698236

相關推薦

innodb資料解釋

什麼是元資料鎖? 其實在mysql 5.5.3開始之後的版本,針對innodb表,任何已經開始的事務將一直持有元資料鎖,一直到事務提交,另外使用alter對錶結構進行修改的時候,也會持有元資料鎖,直到alter語句結束。 1、建立一張innodb引擎的測試表 插入2行

MySQL如何檢視資料阻塞在哪個語句上

方法: 1)執行show processlist;,可以看到drop語句在等待元資料鎖 mysql> show processlist; +----+-------------+-----------+------+---------+---------+---------------

深入理解MySQL的MDL資料

前言 好久沒更新,主要是因為Inside君最近沉迷於一部動畫片——《新葫蘆娃兄弟》。終於抽得閒,完成了本篇關於MySQLMDL鎖的深入分析與介紹。雖然之前有很多小夥伴分析過,但總感覺少了點什麼,故花了點時間翻看了下原始碼。Inside君或許不是最牛掰的核心開發人員,但自認為應該是業界最會講故事的碼

mysql中的資料

為了保證事務在執行的過程中,不會因為ddl語句導致事務失敗,mysql中出現了元資料鎖。下面簡單測試下 session A: test>begin     -> ; Query OK, 0 rows affected (0.01 sec) .test>in

MDL--資料請求與等待+資料類物件

1 元資料鎖的鎖請求與鎖等待 元資料鎖在MySQL Server層,按照鎖的狀態被細分為兩種,一種是已經施加的鎖,一種是等待施加的鎖即鎖請求,這樣被區分的原因,如MySQL對“class MDL_

mysql innodb插入意向

ins 之間 等待 為什麽 pos 使用 key 插入 由於 innodb中有插入意向鎖。專門針對insert,假設插入前,該間隙已經由gap鎖,那麽Insert會申請插入意向鎖。那麽這個插入意向鎖的作用是什麽? 1、為了喚起等待。由於該間隙已經有鎖,插入時必須堵

MySQL Innodb 中的

upd 種類型 共享鎖 隔離 AD 釋放 ble 完整性 ext MySQL Innodb 中的鎖 鎖是用來解決並發沖突的必要手段,MySQL 中的並發主要是指多個線程同時對同一個數據庫進行操作,其中不同線程可能代表不同的事務,本質上也就是對共享資源的不同事務的同時訪問。

基礎知識漫談(4):講講資料

說幾個風馬牛不相及的詞兒,spring的依賴注入定義,hibernate的資料對映定義,XML的DTD,再就是我們常說的報文格式。 如果對它們不甚瞭解,請參考章節一《想到哪兒寫到哪兒》。有了基本的瞭解之後,應當隱約之中有一種感覺,“它們很相似”。 本篇文章要說的就是這個相似性,我管它叫做資料

IIS 資料訪問失敗

辦公室的機器上是裝的 VS2010,Win7, IIS 7.5 但家裡的機器是 XP Professional 2002 sp3, 沒辦法,只能裝 專門針對 xp pro sp3版的 IIS 5.1 這個版本的 iis 不是很好找, 最後還是在 CSDN上找到了: ( xp pro s

NC6.5 做主子表單據 釋出資料錯誤: ORA-00001: 違反唯一約束條件 (NC65.PK_MD_BIZITFMAP)

NC6.5 做主子表單據 釋出元資料錯誤: ORA-00001: 違反唯一約束條件 (NC65.PK_MD_BIZITFMAP); class com.yonyou.studio.mdp.database.connection.exception.DBException:java.s

Impala資料同步命令使用規則

invalidate metadata操作比refresh要重量級 如果涉及到表的schema改變,使用invalidate metadata [table] 如果只是涉及到表的資料改變,使用refresh [table] 如果只是涉及到表的某一個分割槽資料改變,使用refresh [table

(三)Hive資料資訊對應MySQL資料庫表

(三)Hive元資料資訊對應MySQL資料庫表   目錄 概述 一、儲存Hive版本的元資料表(VERSION) 二、Hive資料庫相關的元資料表(DBS、DATABASE_PARAMS) 1、DBS 2、DATABASE_P

餓了麼資料管理實踐之路

一、背景 大資料挑戰 大資料時代,餓了麼面臨資料管理、資料使用、資料問題等多重挑戰。具體可以參考下圖: 資料問題:多種執行、儲存引擎,分鐘、小時、天級的任務排程,怎樣梳理資料的時間線變化? 資料使用:任務、表、列、指標等資料,如何進行檢索、複用、清理、熱度Top計算? 資料管理:怎樣對錶、列、指

使用com.sun.imageio.plugins.png.PNGMetadata讀取圖片的資料

所謂圖片元資料,就是除了我們肉眼看到的圖片內容外,隱藏在這些內容背後的一些技術資料。 本文介紹如何使用Java程式碼將一張圖片的隱藏資訊讀取出來。 首先不需要下載任何額外的Java庫,用JDK自帶的庫就能工作。 import java.io.ByteArrayInputStream; import j

InnoDB引擎——6.

InnoDB引擎——6.鎖篇 行級鎖神話——行級鎖總會增加開銷 實際上,只有當實現本身會增加開銷時,行級鎖才會增加開銷,InnoDB儲存引擎不需要鎖升級,因為一個鎖和多個鎖的開銷是相同的。如何理解? MyISAM是表鎖,資料庫中lock和latch都是鎖, latch更輕量,la

資料(十八):Hive資料配置、常見屬性配置、資料型別與資料轉換

一、Hive元資料配置到MySQL當中         為什麼要把Hive的元資料配置到MySql中?我們可以使用多個客戶端連線linux系統並且都嘗試啟動Hive,可以發現在啟動第二個Hive客戶端的時候發生報錯了。   

JDBC-資料

元資料 元資料:用來描述資料的資料(用來描述資料的含義的一些資訊) 如:列名、表的資訊 表示資料庫連線的元資料 conn=DriverManager.getConnection(url,usrname,psw); DatabaseMetaData dmd=conn.getM

2018年11月11日 關於Vue的命名檢視 and 導航鉤子 and 資料及路由匹配

1、命名檢視 //在html中相關程式碼 <div id="app"> <div> <router-link to="/">首頁</router-link> <router-link to="/

《compass-reference》翻譯計劃之:第9章. 通用資料

第9章. 通用元資料 9.1    介紹 Compass Core中的通用元資料,提供了OSEM檔案中使用的元資料名和別名的定義——特別是你的應用中通過多個OSEM檔案定了一個非常大的領域模型時,它顯得非常有用。這個機制的另一個優勢是,它可以增加額外的元資料資訊

資料管理】Atlas術語(Glossary)

Atlas的術語表(Glossary)提供了一些適當的“單詞”,這些“單詞”能彼此進行關連和分類,以便業務使用者在使用的時候,即使在不同的上下文中也能很好的理解它們。此外,這些術語也是可以對映到資料資產中的,比如:資料庫,表,列等。 術語表抽象出了和資料相關的專業術語,使得使用者能以他們更熟悉的方式去查詢和