mysql 在删除大量数据或者索引之后 表的数据内存和索引内存并没有明显的减少 为什么

“你知道我是干大事的男人吗?” “什么大事?” “你就是我的大事。”

 

在我们针对数据表进行了大量删除或者删除掉某个无用的索引之后,该表占的数据内存或者索引并没有明显的变换,这是因为删除操作后在数据文件中留下碎片所致。

那么要怎么样进行优化了,

关键字  OPTIMIZE TABLE  your_table

举例子:

复制代码
SELECT
    TABLE_NAME,
    concat( TRUNCATE ( data_length / 1024 / 1024, 2 ), ' MB' ) AS data_size,
    concat( TRUNCATE ( index_length / 1024 / 1024, 2 ), ' MB' ) AS index_size
FROM
    information_schema.TABLES
WHERE
    TABLE_SCHEMA = 'fangdasheng'
    AND TABLE_NAME = 'sku_sku';
复制代码

结果:

 

然后删除掉一个多余的索引,

接着执行 optimize 命令

OPTIMIZE table `sku_sku`;

等待一段时间之后,在进行上面数据内存,索引内存查询

结果显示:

 

索引内存明显减少了,但在执行 optimize  命令的时候,要注意锁表问题

 

注意:在执行 碎片整理的时候

 

会出现 note  提示

先检查数据库是否是  MyISAM  Innodb 引擎类型的数据,

 

没有减少可以查看这篇博客记录

 https://www.cnblogs.com/fangdada/p/15423304.html

 

 

 

 

posted @   方达达  阅读(460)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示