我试图运行一个相当大的查询,它应该每晚运行以填充一个表.我得到一个错误,说Incorrect key file for table '/var/tmp/#sql_201e_0.MYI'; try to repair it,但我使用的存储引擎(无论默认值是什么,我猜?)不支持修复桌子.

如何修复此问题,以便运行查询?

推荐答案

存储引擎(MyISAM)不支持修复表.你应该能修好它.

如果修复失败,则表明表已严重损坏,您别无 Select ,只能从备份中恢复.

如果您的其他系统(例如,软件版本和模式相同的非生产系统)具有相同的表,那么您可能可以通过一些黑客手段(复制frm和MYI文件,然后进行修复)来修复它.

从本质上讲,诀窍是首先避免弄坏桌子.这意味着永远要干净地关闭数据库,永远不要让它崩溃,永远不要出现硬件或电源问题.在实践中,这是不太可能的,所以如果耐久性问题,你可能想考虑一个更安全的存储引擎.

Mysql相关问答推荐

如何将MySQL与AS&Quot;语法一起用于存储过程返回的表?

错误:数据包顺序错误.GET:0预期:10 node JS MySQL

GoRM中行最大值查询返回"0"

如何更新一个巨大的表的 50k 行?

如何使用等于、喜欢和不等于在 json 字段上编写查询?

MySQL:根据条件查找某些用户的行位置

MySQL DISTINCT 日期仅返回特定表的 1 个值.相同的查询适用于其他表

在 SQL 中 for each 组返回具有最大值的行,包括具有相同值的行

MYSQL:如何根据之前的相关记录获取记录

如何创建一个判断行是否存在的mysql查询-如果存在我想插入一条新记录,否则增加一个值

如何显示患者预约中的专业人员姓名?

如何在 Laravel 5.1 中获取数据库中的表列表

字符ي和ی以及波斯语的区别 - Mysql

从mysql中的大表中快速 Select 随机行

WHERE 子句中的条件顺序会影响 MySQL 性能吗?

电话号码和地址的mysql数据类型

你能推荐一个免费的 Linux 轻量级 MySQL GUI 吗?

如何将具有相同列值的mysql行分组为一行?

Python 是否支持 MySQL 准备好的语句?

什么是mysql的BETWEEN性能超过..?