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.enkj.com】 |