我在MariaDB / InnoDB上遇到索引损坏问题。今天,我得到了
InnoDB: Error: Flagged corruption of <index> in <table> in CHECK TABLE; Wrong count
对于2个索引,并且在DB崩溃后尝试INSERT到其中一个表中。我已经通过删除和重新创建索引来解决这个问题,但它现在是第二次(上次有6个指数受到影响),所以我想知道:为什么我的指数会损坏?
我唯一的出发点是,两次我都提前1或2小时更新了MariaDB(通过apt-get)。但在我在MariaDB上打开一个问题之前,我更愿意检查其他可能的原因。
# mysql -V
mysql Ver 15.1 Distrib 10.1.19-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
编辑:重新开始。这次不是在更新之后,而是在长时间运行的查询之后(大表上的DROP PRIMARY KEY,需要79秒)。但是表A上长时间运行的查询如何导致表B上的索引损坏?我的硬盘有缺陷吗?它是MariaDB- / InnoDB问题吗?或者......?
答案 0 :(得分:0)
如果您使用的是MyISAM,请切换到InnoDB。
这是“修复”表格的另一种方法:
ALTER TABLE tbl ENGINE=InnoDB;
将复制表并重建所有索引。
DROP PRIMARY KEY
对InnoDB来说是一件坏事。你能详细说明你为什么这么做吗?