mysql(mariadb)中的ibd文件过大,如何处理,可以删除吗?

环境:k8s集群,通过helm安装的mariadb数据库。 数据库分为主从,其中一个数据库实例有一张存储日志备份的表ds_log_detail,时间长了里面存了大量冗余数据,准备清理。数据表ds_log_detail已经做了定期清理。检查发现存储节点中存在ds_log_detail.idb文件。已经50G了。 本来打算 直接删掉,但是去网上查了一下资料,好像对数据库有影响。请问这个文件有什么用?可以删除吗?或者怎么能把这个文件变小? !

mysql
mariadb
2023-07-11 13:46:29
浏览
已于2023-7-11 13:47:01修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
福娃泡泡

db是表空间文件,一般的删除数据不会真正的把数据从表中删除,会转换成碎片。

SHOW TABLE STATUS LIKE "ds_log_detail"\G

查询结果中的Index_length是索引的数量,Data_length是碎片的数量。

OPTIMIZE TABLE ds_log_detail;

优化整理碎片,会锁表操作,建议要避开业务时间操作。

分享
微博
QQ
微信
回复
2023-07-11 15:45:10
相关问题
在ArkTS如何处理耗时操作?
416浏览 • 1回复 待解决
有谁知道web拦截如何处理文件
785浏览 • 1回复 待解决
如何处理语音识别过程错误?
95浏览 • 0回复 待解决
如何处理Redis内存优化?
2798浏览 • 1回复 待解决
如何处理复杂 SVG 图形交互?
32浏览 • 0回复 待解决
父组件如何处理子组件内点击事件
2640浏览 • 1回复 待解决
HarmonyOS 大整数如何处理
362浏览 • 1回复 待解决
Mysql如何用sql语句删除这样内容?
1770浏览 • 1回复 待解决
如何处理HAR之间互相依赖
2269浏览 • 1回复 待解决
如何处理消息被频控问题
1721浏览 • 1回复 待解决
鸿蒙应用如何处理异步请求?
51浏览 • 0回复 待解决
应用线程过多时如何处理
1846浏览 • 1回复 待解决
mysql 千万级表快速插入和删除记录
2987浏览 • 1回复 待解决