mysql之delete删除记录后数据库大小不变
当DELETE后面跟条件的时候,则就会出现这个问题
deletefromtable_namewhere条件
删除数据后,数据表占用的空间大小不会变。
不跟条件直接delete的时候。
deletefromtable_name
清除了数据,同时数据表的空间也会变为0
如果已经删除了表数据的很大一部分,或者有很多变化和变长表行(VARCHAR表,VARBINARY、BLOB或文本列)进行了更改,因为删除操作后在数据文件中留下碎片所致。DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间,可以使用OPTIMIZETABLE来回收未使用的空间,并整理数据文件的碎片。
OPTIMIZETABLE只对MyISAM,BDB和InnoDB表起作用。
OPTIMIZETABLE表名;
针对myisam引擎,使用optimizetable还有如下功能:
Ifthetablehasdeletedorsplitrows,repairthetable.[修复表] Iftheindexpagesarenotsorted,sortthem.[索引未排序,会排序] Ifthetable'sstatisticsarenotuptodate(andtherepaircouldnotbeaccomplishedbysortingtheindex),updatethem.[若表的统计信息不是最新的,更新它]
对myiam数据表进行批量删除后,发现空间没有回收,要通过optimizetable来回收空间
以上所述是小编给大家介绍的mysql之delete删除记录后数据库大小不变的相关知识,希望对大家有所帮助!
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下