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
相关问题
HarmonyOS 图片上传文件过大如何处理
72浏览 • 1回复 待解决
在ArkTS如何处理耗时操作?
547浏览 • 1回复 待解决
有谁知道web拦截如何处理文件
884浏览 • 1回复 待解决
Mysql如何用sql语句删除这样内容?
1953浏览 • 1回复 待解决
如何处理语音识别过程错误?
223浏览 • 0回复 待解决
如何处理Redis内存优化?
2904浏览 • 1回复 待解决
mysql 千万级表快速插入和删除记录
3074浏览 • 1回复 待解决
mysql怎样批量删除表数据?
2483浏览 • 1回复 待解决
如何处理复杂 SVG 图形交互?
150浏览 • 0回复 待解决