set @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug; CREATE TABLE t1 (a int not null primary key) engine=InnoDB; set global innodb_limit_optimistic_insert_debug = 2; insert into t1 values (1); begin; insert into t1 values (5); begin; insert into t1 values (4); insert into t1 values (3); begin; insert into t1 values (2); analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 10.0000 rollback; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 8.0000 rollback; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 5.0000 set global innodb_limit_optimistic_insert_debug = 10000; rollback; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 3.0000 begin; insert into t1 values (2); rollback; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 2.0000 begin; insert into t1 values (2); rollback; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1'; DATA_LENGTH / 16384 1.0000 drop table t1; set global innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug;