MYSQL数据库修复耗时极长

问题描述

我有一个MysqL MYISAM表,其大小约为7GB,并具有很多索引。该表昨天损坏了,我的MysqL修复现在已经工作了12多个小时。

我想知道MysqL修复实际上需要多长时间? (由于正在运行修复,我目前无法确切获得行数和确切大小)。

我使用的变量是:

| myisam_max_sort_file_size | 9223372036853727232  |
| myisam_mmap_size          | 18446744073709551615 |
| myisam_recover_options    | FORCE                |
| myisam_repair_threads     | 1                    |
| myisam_sort_buffer_size   | 268435456
| read_buffer_size     | 67108864 |
| read_only            | OFF      |
| read_rnd_buffer_size | 4194304

由于使用了GODADDY托管主机,因此无法更改任何全局变量

从状态上看,维修始终是“通过分类维修”。 还有什么其他方法可以加快此修复过程?

谢谢

编辑: 我的内存和cpu使用率可以在下图中看到

enter image description here

我还尝试了从2天的备份还原数据库(到新数据库),在过去5个小时中,该数据库也卡在同一张表的“使用keycache修复”上。

我尝试了MysqLcheck和REPAIR TABLE,而不是myisamchk,因为我无法访问/ var / lib / MysqL中的特定数据库文件夹,这会导致权限被拒绝错误。以及myisamchk空命令会导致找不到命令。

解决方法

需要几分钟。如果12小时后仍未完成,则可能挂起了,永远也无法完成。

MyISAM十年来还没有真正维护过,很可能您遇到了错误。如果您可以使用原始数据库文件,那么使用myisamchk可能会有更好的机会。