在InnoDB存储引擎中,事务id是用来标识事务的唯一数字标识,每个事务都有一个唯一的事务id。在mvcc、锁等很多场景中,我们都能看到事务id的影子。 那么,事务id是什么时候被分配的呢?其实是在执行第一条语句的时候分配的,准确的说,是执行第一条写语句或锁定读语(SELECT ... FOR UPDATE)句时执行的。
下面来做一些小测验,验证一下事务id的分配时机。 设有一张t2表:
CREATE TABLE `t2` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`c` int DEFAULT NULL,