在提交操作期间,事务期间所做的所有更改都是永久的,在此之后不可能进行回滚操作。根据所使用的事务隔离,这可能是此类更改第一次对其他线程可见。
支持提交
,创建一个符合此定义的方法:
int(*提交)(THD * THD, bool all);
的方法名中列出提交
[custom-engine.html#custom-engine-handlerton the handlerton]的第12个条目。
的野
参数用于标识需要提交的事务,而bool所有
参数指示这是完整的事务提交,还是只是作为事务一部分的语句的结束。
实施提交
操作将因存储引擎而异。例子可以在ha_innodb.cc
.
如果服务器处于自动提交模式,存储引擎应该自动提交所有只读语句,例如选择
.
在存储引擎中,“自动提交”通过计数锁来工作。的每次调用都增加计数external_lock ()
时,减量external_lock ()
的参数调用F_UNLCK
.当计数降至零时,触发提交。