store_lock |
發(fā)布時(shí)間: 2012/8/22 18:15:50 |
目的創(chuàng)建和釋放表鎖定。 概要
描述這是store_lock方法。
下面介紹了關(guān)于handler::store_lock()的概念: 該語(yǔ)句決定了在表上需要何種鎖定。對(duì)于updates/deletes/inserts,我們得到WRITE鎖定;對(duì)于SELECT...,我們得到讀鎖定。
將鎖定添加到表鎖定處理程序之前(請(qǐng)參見(jiàn)thr_lock.c),mysqld將用請(qǐng)求的鎖定調(diào)用存儲(chǔ)鎖定。目前,存儲(chǔ)鎖定能將寫(xiě)鎖定更改為讀鎖定(或某些其他鎖定),忽略鎖定(如果不打算使用MySQL表鎖定),或?yàn)楹芏啾硖砑渔i定(就像使用MERGE處理程序時(shí)那樣)。
例如,Berkeley DB能夠?qū)⑺械?span style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">WRITE鎖定更改為TL_WRITE_ALLOW_WRITE(表明正在執(zhí)行WRITES操作,但我們?nèi)栽试S其他人執(zhí)行操作)。
釋放鎖定時(shí),也將調(diào)用store_lock()。在這種情況下,通常不需要作任何事。 電腦學(xué)習(xí)網(wǎng)站www.boydavid.com 在某些特殊情況下,MySQL可能會(huì)發(fā)送對(duì)TL_IGNORE的請(qǐng)求。這意味著我們正在請(qǐng)求與上次相同的鎖定,這也應(yīng)被忽略(當(dāng)我們打開(kāi)了表的某一部分時(shí),如果其他人執(zhí)行了表刷新操作,就會(huì)出現(xiàn)該情況,此時(shí),mysqld將關(guān)閉并再次打開(kāi)表,然后獲取與上次相同的鎖定)。我們打算在將來(lái)刪除該特性。
由get_lock_data()從lock.cc中調(diào)用。 參數(shù)
返回值無(wú)返回值。
用法下述示例取自ARCHIVE存儲(chǔ)引擎: 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |