表MYSQL的密钥文件不正确

Bo *_*ngs 3 mysql

当我想GROUP BY一个查询时,我收到此错误消息:

Incorrect key file for table '/tmp/#sql_623d_0.MYI'; try to repair it
Run Code Online (Sandbox Code Playgroud)

它是一个InnoDB表,有3.000.000条记录和4,3 GiB大.

我跑的时候

repair table mytablename
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

The storage engine for the table doesn't support repair
Run Code Online (Sandbox Code Playgroud)

优化不起作用.该怎么办?

Bo *_*ngs 6

问题不在于桌子是腐败的.当你做一个分组时,mysql会创建一个临时表.由于表太大,临时表占用的磁盘空间超过10GB.磁盘100%已满时出现错误消息.

我用命令来检查磁盘空间:

df -h /dev/root
Run Code Online (Sandbox Code Playgroud)

所以在MySQL配置(my.ini)中,我将存储临时表的位置(tmpdir)更改为具有足够可用磁盘空间的分区.

现在查询运行成功