store_lock |
發布時間: 2012/8/22 18:15:50 |
目的創建和釋放表鎖定。 概要
描述這是store_lock方法。
下面介紹了關于handler::store_lock()的概念: 該語句決定了在表上需要何種鎖定。對于updates/deletes/inserts,我們得到WRITE鎖定;對于SELECT...,我們得到讀鎖定。
將鎖定添加到表鎖定處理程序之前(請參見thr_lock.c),mysqld將用請求的鎖定調用存儲鎖定。目前,存儲鎖定能將寫鎖定更改為讀鎖定(或某些其他鎖定),忽略鎖定(如果不打算使用MySQL表鎖定),或為很多表添加鎖定(就像使用MERGE處理程序時那樣)。
例如,Berkeley DB能夠將所有的WRITE鎖定更改為TL_WRITE_ALLOW_WRITE(表明正在執行WRITES操作,但我們仍允許其他人執行操作)。
釋放鎖定時,也將調用store_lock()。在這種情況下,通常不需要作任何事。 電腦學習網站www.boydavid.com 在某些特殊情況下,MySQL可能會發送對TL_IGNORE的請求。這意味著我們正在請求與上次相同的鎖定,這也應被忽略(當我們打開了表的某一部分時,如果其他人執行了表刷新操作,就會出現該情況,此時,mysqld將關閉并再次打開表,然后獲取與上次相同的鎖定)。我們打算在將來刪除該特性。
由get_lock_data()從lock.cc中調用。 參數
返回值無返回值。
用法下述示例取自ARCHIVE存儲引擎: 本文出自:億恩科技【www.laynepeng.cn】 |