家伙。 我真的很感谢你的支持,因为这让我发疯。
我在MySQL数据库上有一个损坏的表,在过去的几天里,我一直试图修复它,但没有成功。 该表有1,2 Gb的信息。
我使用“phpMyAdmin”检测到表的腐败,所以我要求它修复表。 这是在7月20日14时47分(格林尼治标准时间)。 现在是7月22日23时28分(格林威治标准时间),程序没有完成,虽然我的WHM“MySQL进程列表”显示:
时间 – 状态 – 信息
203558 – 通过分类修理 – 修理表xyz
(是的,现在已经跑了200,000多秒了…)
我执行的查询导致了这种状态:
SET @@ session.myisam_sort_buffer_size:= 67108864;
SET @@ session.read_buffer_size:= 524288;
SET @@ session.read_rnd_buffer_size:= 524288;
SET @@ session.sort_buffer_size:= 8388608;
SET @@ session.key_buffer_size:= 8388608;
SET @@ session.tmp_table_size:= 67108864;
– 执行查询
修理表xyz;
SET @@ session.myisam_sort_buffer_size:= DEFAULT;
SET @@ session.read_buffer_size:= DEFAULT;
SET @@ session.read_rnd_buffer_size:= DEFAULT;
SET @@ session.key_buffer_size:= DEFAULT;
SET @@ session.sort_buffer_size:= DEFAULT;
SET @@ session.tmp_table_size:= DEFAULT;
我读过一些其他网站,我应该使用更大的缓冲区大小来加快修复过程,所以我select使用比我的MySQL默认值更大的值,我列出如下:
默认值
关键缓冲区大小 :838.86万
myisamsorting缓冲区大小 :8,388,608
读缓冲区大小 :131072
读取rnd缓冲区大小 :262,144
sorting缓冲区大小 :2,097,144
tmp表格大小 :33,554,432
我不熟悉对服务器的shell访问,所以这不是一个真正的select。
你有什么build议来帮助我加快修复过程? 我应该终止当前的REPAIR TABLE过程吗? 我该怎么办?
预先感谢您的支持。
你的硬盘满了吗?
如果没有足够的空间,维修程序至less需要比原来的桌子多一倍的空间,只需要等待足够的空间。 修复一个1.2Gb的表应该是非常快的。