亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買(mǎi)流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷(xiāo)推廣
客服中心
業(yè)務(wù)咨詢(xún)
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線(xiàn)客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

詳細(xì)了解 MySQL鎖機(jī)制

添加時(shí)間:2014-3-15 16:37:19  添加: 思海網(wǎng)絡(luò) 

 詳細(xì)了解 MySQL的數(shù)據(jù)鎖機(jī)制: 

    1.MySQL中并發(fā)和隔離控制機(jī)制

  Meta-data元數(shù)據(jù)鎖:在table cache緩存里實(shí)現(xiàn)的,為DDL(Data Definition Language)提供隔離操作。一種特別的meta-data元數(shù)據(jù)類(lèi)型,叫Name Lock。(SQL層)

  表級(jí)table-level數(shù)據(jù)鎖(SQL層)

  存儲(chǔ)引擎特有機(jī)制 -- row locks行鎖,page locks頁(yè)鎖,table locks表級(jí),versioning版本(在引擎中實(shí)現(xiàn))

  全局讀鎖 -- FLUSH TABLES WITH READ LOCK(SQL層)

  2.在語(yǔ)句執(zhí)行中表的生命周期

  DML(Data Manipulation Language)例子:

  計(jì)算語(yǔ)句使用到的所有表

  在每個(gè)表:打開(kāi)open表 -- 從table cache緩存里得到TABLE對(duì)象,并在此表加上meta-data元數(shù)據(jù)鎖

  等待全局讀鎖后改變數(shù)據(jù)

  在每個(gè)表:鎖lock表 -- 在表加上table-level數(shù)據(jù)鎖

  執(zhí)行語(yǔ)句:調(diào)用:handler::write_row()/read_rnd()/read_index(),等;隱式地調(diào)用引擎級(jí)engine-level鎖機(jī)制

  在每個(gè)表:釋放表的數(shù)據(jù)鎖

  在每個(gè)表:釋放表的DDL鎖并把表放回table cache緩存里

  DDL語(yǔ)句也是一樣,沒(méi)有典型的執(zhí)行計(jì)劃。

  3.獲取meta-data元數(shù)據(jù)鎖

  meta-data元數(shù)據(jù)鎖的實(shí)現(xiàn)作為T(mén)ABLE對(duì)象的一個(gè)屬性,TABLE對(duì)象代表了table cache緩存。

  meta-data元數(shù)據(jù)鎖為如下任何一種:shared共享鎖 -- 隱式地加鎖,只通過(guò)標(biāo)記TABLE對(duì)象“被使用”;semi-exclusive半獨(dú)享鎖,也叫Name Lock,RENAME操作會(huì)在源表和目標(biāo)加上此鎖;exclusive獨(dú)享,也叫exclusive name lock,CREATE TABLE ... SELECT操作會(huì)在目標(biāo)表上加上此鎖,如果沒(méi)有的話(huà)。

  4.表高速緩存(table cache)

  是一個(gè)HASH變量,叫open_cache

  TABLE對(duì)象是HASH元素

  以HASH的操作被LOCK_open mutex互斥量保護(hù)

  內(nèi)部結(jié)構(gòu)(The table cache: internal structure)

  在緩存里,每個(gè)物理表可能被多個(gè)TABLE實(shí)例表示

  相同表的所有TABLE實(shí)例,通過(guò)相連的列(a linked list)連接著

  每個(gè)TABLE實(shí)例有一個(gè)table cache緩存版本的復(fù)制 -- TABLE實(shí)例保存的版本不會(huì)和當(dāng)前table cache緩存版本一致,而是保存舊的和從緩存刪除的

  被某些語(yǔ)句使用的TABLE實(shí)例被會(huì)標(biāo)記為對(duì)其它的語(yǔ)句來(lái)說(shuō)是無(wú)效的 -- 這就是meta-data元數(shù)據(jù)鎖的本質(zhì)

  在緩存中的TABLE實(shí)例通常地有一個(gè)有效的句柄實(shí)例連接著它

  內(nèi)部運(yùn)算(The table cache: operations)

  主要的代碼在:sql/sql_base.cc,sql/lock.cc,sql/table.h,sql/sql_table.cc

  主要的方法:open_table(),close_thread_tables(),close_cached_table(),lock_table_names()

  事實(shí)上,一個(gè)概念/對(duì)象組合不僅用于緩存或鎖定:LOCK_open mutex互斥量也用到其它的操作,如:使磁盤(pán)上和處理中的表創(chuàng)建的原子性

  典型的操作,來(lái)自隔離等級(jí)Pov的重要(注:isolation PoV沒(méi)研究出是什么意思):語(yǔ)句查詢(xún)時(shí),打開(kāi)和關(guān)閉表 -- shared共享鎖;強(qiáng)制和等待直到表的所有實(shí)例被關(guān)閉 -- exclusive獨(dú)享(但不完全);Name Lock -- 特殊地情況,當(dāng)手上沒(méi)有TABLE實(shí)例,只能使用一個(gè)特殊的占位符(甚至表可能不存在)。

關(guān)鍵字:MySQL、數(shù)據(jù)

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話(huà):(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專(zhuān)項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開(kāi)網(wǎng)站