insert时能否重用delete后的空间

来源:互联网 发布:同学录制作软件 编辑:程序博客网 时间:2024/04/30 08:12

这个问题答案很简单,很多人也都清楚,但直接说答案没意义,也不便于理解。我们用简单的案例来演示


1、新建表,占用200M

mysql> create table test as select @id:=@id+1 as id,e.* from emp e ,t100 a,t100 b,t100 c;Query OK, 2875306 rows affected (30.62 sec)Records: 2875306  Duplicates: 0  Warnings: 0mysql> system ls /data/mysql/user_3306/data/test/test.* -lh-rw-rw----. 1 mysql mysql 8.6K 2月   5 07:50 /data/mysql/user_3306/data/test/test.frm-rw-rw----. 1 mysql mysql 212M 2月   5 07:50 /data/mysql/user_3306/data/test/test.ibd

2、删除数据,空间不会释放

mysql> select count(*) from test;+----------+| count(*) |+----------+|  2875306 |+----------+1 row in set (6.87 sec)mysql> delete from test limit 2875300;Query OK, 2875300 rows affected, 1 warning (39.77 sec)mysql> system ls /data/mysql/user_3306/data/test/test.* -lh-rw-rw----. 1 mysql mysql 8.6K 2月   5 07:50 /data/mysql/user_3306/data/test/test.frm-rw-rw----. 1 mysql mysql 212M 2月   5 07:53 /data/mysql/user_3306/data/test/test.ibd

3、insert数据,可以看到重用了空间

mysql> insert into test select @id:=@id+1 as id,e.* from emp e ,t100 a,t100 b,t100 c;Query OK, 2875306 rows affected (51.26 sec)Records: 2875306  Duplicates: 0  Warnings: 0mysql> system ls /data/mysql/user_3306/data/test/test.* -lh-rw-rw----. 1 mysql mysql 8.6K 2月   5 07:50 /data/mysql/user_3306/data/test/test.frm-rw-rw----. 1 mysql mysql 224M 2月   5 07:54 /data/mysql/user_3306/data/test/test.ibd

以上实验,非自动提交模式下注意要用commit来提交结果

0 0
原创粉丝点击