MySQL的delete操作对表结构的影响
原创delete几个操作案例
- drop操作: 无论什么发动机,Innodb还是myisam将释放磁盘空间。
- truncate操作: truncate和drop一样将释放磁盘空间。,但与drop不同的是,truncate=drop+create,是创建一个新的空表,保留了mysql的表结构
- delete操作:
- delete from table_name已删除所有数据,对于myisam释放磁盘空间,innodb不会释放
- delete from 带where的删除都不释放磁盘空间,可以使用optimize table name进行释放
分析
1.删除后数据不会从表中删除。,相反,表空间继续以碎片形式存在。,您可以使用命令查看
show table status like table_name;
2.data_free指示片段的大小
-
使用optimize优化
optimize table table_name;
-
优化后的比较
存储引擎差异
- innodb:
- 支持事务,外键,行级锁,
- 属于索引组织表,您可以使用共享表空间存储或多表空间存储。
- 共享表空间存储和myisam一样,以表名开头,拓展名是frm;索引文件和数据文件存储在表空间中。
- 使用多表空间存储,每个表都有一个表空间文件,用于存储每个表的数据和索引。
- myisam:
- 不支持外键,事务,属于堆表
- 磁盘存储上有三个文件。: frm存储表的定义;myd用于存储数据;myi用于存储表索引
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除