博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql删除后数据库没变化_mysql之delete删除记录后数据库大小不变
阅读量:1533 次
发布时间:2019-04-21

本文共 916 字,大约阅读时间需要 3 分钟。

当DELETE后面跟条件的时候,则就会出现这个问题

delete from table_name where 条件

删除数据后,数据表占用的空间大小不会变。

不跟条件直接delete的时候。

delete from table_name

清除了数据,同时数据表的空间也会变为0

如果已经删除了表数据的很大一部分,或者有很多变化和变长表行(VARCHAR表,VARBINARY、BLOB或文本列)进行了更改,因为删除操作后在数据文件中留下碎片所致。DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间,可以使用OPTIMIZE TABLE来回收未使用的空间,并整理数据文件的碎片。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。

OPTIMIZE TABLE 表名;

针对myisam引擎,使用optimize table 还有如下功能:

If the table has deleted or split rows, repair the table. [修复表]

If the index pages are not sorted, sort them. [索引未排序,会排序]

If the table's statistics are not up to date (and the repair could not be accomplished by sorting the index), update them.[若表的统计信息不是最新的,更新它]

对myiam数据表进行批量删除后,发现空间没有回收,要通过optimize table来回收空间

以上所述是小编给大家介绍的mysql之delete删除记录后数据库大小不变的相关知识,希望对大家有所帮助!

您可能感兴趣的文章:mysql 删除操作(delete+TRUNCATE)

MySQL防止delete命令删除数据的两种方法

mysql支持跨表delete删除多表记录

MySQL删除数据Delete与Truncate语句使用比较

mysql delete 多表连接删除功能

转载地址:http://voydy.baihongyu.com/

你可能感兴趣的文章
CString.Buffer()的作用
查看>>
EM算法
查看>>
因子分析(Factor analysis)
查看>>
PCA降维
查看>>
KFold
查看>>
enumerate()函数
查看>>
LogisticRegression函数
查看>>
recall和precise的区别
查看>>
ICA(独立成分分析)(1)
查看>>
windows10+Git-Bash使用cloc代码统计工具
查看>>
YOLOv4生成GPU版和CPU版动态库,供python调用
查看>>
docker一些错误记录
查看>>
win10+vs2017+opencv4.5.0+opencv_contrib-4.5.0+cuda源码编译详细教程
查看>>
opencv模板匹配相同位置去除重复的框
查看>>
ubuntu14.04安装opencv3.4.5+opencv_contrib3.4.5详细教程
查看>>
win10+vs2017+opencv4.0.1+opencv_contrib-4.0.1详细教程
查看>>
windows下keras可视化解决pydot failed to call GraphViz 的问题
查看>>
机器学习应用日报[8.27],可体验学习!
查看>>
java中StringBuilder、StringBuffer、String类之间的关系
查看>>
java笔试题(1)
查看>>