mysql 乐观锁根据检查数据自之前载入至今版本是否已变更来达到并发控制。要开启乐观锁,可以用 read_committed 或 repeatable_read 事务隔离级别,或在 where 子句中应用版本列。
怎样开启 MySQL 乐观锁
什么叫乐观锁?
乐观锁是一种并发控制体制,它假定在获取数据时,数据不被别的事务改动。在更新数据以前,它将首先检查数据自之前载入至今版本是否已变更。假如版本产生变更,则升级操作要被中断。
开启 MySQL 乐观锁
要开启 MySQL 里的乐观锁,需要用到 READ_COMMITTED 或 REPEATABLE_READ 事务隔离级别。
1.READ_COMMITTED
READ_COMMITTED事务隔离级别容许事务载入未提交的信息,但只能载入已提交的信息。使用该级别时,假如另一个事务在目前事务获取数据后升级了数据,则当前事务在更新数据时把失败。
2.REPEATABLE_READ
REPEATABLE_READ事务隔离级别比 READ_COMMITTED 等级更严格。它保证在事务执行期间,数据不被别的事务改动。假如另一个事务升级了当前事务已经载入的信息,则当前事务在更新数据时把失败。
要设置事务隔离级别,可以用下列句子:
SETTRANSACTIONISOLATIONLEVELREADCOMMITTED;
SETTRANSACTIONISOLATIONLEVELREPEATABLEREAD;
除开设定隔离级别外,也可以使用 WHERE 子句里的版本列来达到乐观锁。这将查验版本列是否自之前载入至今产生变更,并根据需求中断升级操作。
实例
SELECTFROMtable WHERE version=@current_version;
UPDATEtableSET... WHERE version=@current_version;
在上面的示例中,最先载入表中的数据并存放新版本。随后,在更新数据以前,查验版本是否已变更。假如版本已变更,则升级操作将中断。
以上就是mysql开朗锁怎么开的详细内容,大量请关注其他类似文章!