
这里先说结论,alter table语句可以触发表重建,消除碎片空间。
mysql中的数据存储结构大概是下面这个样子的
而delete掉的标记会记录在头信息中。
做个实验,看看空间是否真的没有释放;
创建一张表user,并插入很多数据
查看表的文件大小
再随便插入几条
ok这里看到文件大小增加了16k,这是因为mysql的一页就是16k,所以文件大小是16k、16k的增长的。
这时候我们删除大量的数据再次查看文件大小,仍然是272k,索命,数据虽然删除,但是空间没有释放。
这里我们对主键执行一个alter table语句
再次查看文件大小
ok 文件大小明显的减少,这里说明主键的alter语句会重建表,并且释放碎片空间;
这时候我们再删除大量的数据再次查看文件大小,这里我们对普通列执行一个alter table语句
再次查看文件大小
ok 文件大小明显的减少,这里说明普通列的alter语句会重建表,并且释放碎片空间;
mysql打开视图显示lackrights的解决方法:从MySQL的information_schema中的视图表View中,用下面的语句修复视图,如:selectVIEW_DEFINITIONfrominformation_schema,viewswhereTABLE_SCHEMA等于databaseandTABLE_NAME等于view欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)