admin 管理员组文章数量: 1184232
drop table table_name 立刻释放磁盘空间 , Innodb和MyISAM;
truncate table table_name 立刻释放磁盘空间, Innodb和MyISAM,truncate table其实有点类似于drop table 然后create;
delete from table_name 不会释放磁盘空间, Innodb和MyISAM, 新insert的数据会插入到原来的位置,比如删除100万数据后,数据文件不会变小,重新插入一百万数据后,数据文件不会变大。
可以在删除掉数据后执行下面语句,会立刻释放磁盘空间,但该操作会锁定表结构
optimize table table_name查看表占用硬盘空间大小的SQL语句如下:(默认用M做展示单位)
SELECT
TABLE_NAME,
( DATA_LENGTH + INDEX_LENGTH )/ 1048576 AS size_Mb,
TABLE_ROWS
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'db_name'
AND TABLE_NAME = 'table_name'还可以执行:
alter table tab_name ENGINE = 'InnoDB';
注意:该操作执行的时候会把该表格先写入一个tmp临时表,所以磁盘剩余空间必须大于 ,否则会执行失败。
版权声明:本文标题:MySQL大清理!删除数据后的磁盘空间优化,让硬盘运行更顺畅! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1772920453a3558452.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论