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
相关问题
如何处理Redis内存优化?
1067浏览 • 1回复 待解决
父组件如何处理子组件内点击事件
137浏览 • 1回复 待解决
应用线程过多时如何处理
65浏览 • 1回复 待解决
如何处理HAR之间互相依赖
138浏览 • 1回复 待解决
如何处理应用卡死(appfreeze)问题
71浏览 • 1回复 待解决
Redis 7.0 Multi Part AOF主进程如何处理
1120浏览 • 1回复 待解决
Mysql如何用sql语句删除这样内容?
321浏览 • 1回复 待解决
mysql 千万级表快速插入和删除记录
1282浏览 • 1回复 待解决