空间占满 100G 后,再度占满 170G,冒了一阵冷汗,以为受攻击,如下图
1
hbolive 71 天前
如果是偶尔的,估计是某个操作导致慢查询产生巨量临时文件。。
|
![]() |
2
angeltop 71 天前
检查检查临时表大小
|
![]() |
3
neocanable 71 天前
innodb 的话,把 innodb_file_per_table 打开了吧,这样的话 truncate 才会起作用
|
![]() |
4
kaka6 71 天前
按目前来说,最有效的就是重启
因为平常 left join , group by 或者 where 查询等,只要没有建索引(物理文件),都会生成临时文件或临时空间 而这个临时文件不会自动释放(我以前一直觉得会释放) 运行久了,累积的临时文件就会占满空间 所以目前觉得最有效的就是定期重启 mysql 实例 当然代码、数据结构也得优化,该建索引建索引 欢迎各位沟通关于 mysql 的其它运维技巧 |
![]() |
5
opengps 71 天前
所有的表数据大小统计一下,看看实际数据占用大小
如果数据大小占比很小,那可能真的是 mysql 日志或者索引等用途占用了,得查查索引之类的使用问题了 |
7
han3sui 71 天前
看完感觉云数据库好方便
|
![]() |
8
daytonight 71 天前 via Android
用 alter table t engine = innodb;重建下表试试。
|
![]() |
9
weifan 71 天前
为什么你能发图片
|
![]() |
10
kaka6 71 天前
@daytonight 全部表已经都是 innodb
|
![]() |
12
yfwl 71 天前
所以我想问除了重启还有没有不停止服务去清理的方法?
|
13
muskill 71 天前 via iPhone
|
14
simonlu9 71 天前
千万不要在线上删大量数据,会产生很大 undo 和 redo 空间,执行超慢,还是分批删吧
|