create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED STATS_PERSISTENT=0; lock tables t1 write; start transaction; insert into t1 values(1, Point(1,1)); insert into t1 values(2, Point(2,2)); insert into t1 values(3, Point(3,3)); insert into t1 values(4, Point(4,4)); insert into t1 values(5, Point(5,5)); insert into t1 values(6, Point(6,6)); insert into t1 values(7, Point(7,7)); insert into t1 values(8, Point(8,8)); insert into t1 values(9, Point(9,9)); insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; commit; unlock tables; start transaction; insert into t1 select * from t1; select count(*) from t1; count(*) 18432 rollback; check table t1; Table Op Msg_type Msg_text test.t1 check status OK select count(*) from t1; count(*) 9216 set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); select count(*) from t1 where MBRWithin(t1.c2, @g1); count(*) 9216 set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); select count(*) from t1 where MBRWithin(t1.c2, @g1); count(*) 0 SET @saved_dbug = @@SESSION.debug_dbug; SET DEBUG_DBUG='+d,page_copy_rec_list_start_compress_fail'; delete from t1; select count(*) from t1 where MBRWithin(t1.c2, @g1); count(*) 0 SET debug_dbug = @saved_dbug; InnoDB 0 transactions not purged drop table t1;