10bet网址
MySQL内部手册


23.17.4实现承诺

在提交操作期间,事务期间所做的所有更改都是永久的,在此之后不可能进行回滚操作。根据所使用的事务隔离,这可能是此类更改第一次对其他线程可见。

支持提交,创建一个符合此定义的方法:

int(*提交)(THD * THD, bool all);

的方法名中列出提交[custom-engine.html#custom-engine-handlerton the handlerton]的第12个条目。

参数用于标识需要提交的事务,而bool所有参数指示这是完整的事务提交,还是只是作为事务一部分的语句的结束。

实施提交操作将因存储引擎而异。例子可以在ha_innodb.cc

如果服务器处于自动提交模式,存储引擎应该自动提交所有只读语句,例如选择

在存储引擎中,“自动提交”通过计数锁来工作。的每次调用都增加计数external_lock ()时,减量external_lock ()的参数调用F_UNLCK.当计数降至零时,触发提交。