有时我得到一个错误,如“表被标记为损坏并被修复”。该数据库(表)正在使用MyISAM。最近一直在发生。可能是什么原因?最近我正在执行批量插入MyISAM表损坏
INSERT INTO table (..., ..., ...) VALUES (...), (...), (...) ...
,它只是挂起。或花了很长时间来完成它似乎挂在我身上。第二天,当我检查表被标记为腐败再次。当我尝试使用mysqlcheck -r它说所有表确定当它达到那个“腐败”的表,它再次挂在那里...
所以,我能做些什么来防止这种情况。可能的原因是什么。数据库托管第三方,我该如何调试?
是InnoDB更可靠的使用引擎吗?我听说MyISAM速度更快,但也有人说InnoDB速度可以很快,但它需要更多的优化。我可以得出结论,InnoDB是更可靠的东西,但总体来说比较慢,甚至优化?
现在,当我尝试执行像select,check table或mysqlcheck -r这样的查询时,甚至会显示create table,它只会挂在那里。我能做什么? – iceangel89 2009-06-14 02:22:41
你有修理吗?它仍在运行(你可以做“显示进程列表”)。很可能你不能访问表或它的元数据,直到它完成(它有一个写锁定)。修复可能需要一段时间才能完成,因此必须重建索引。 – 2009-06-14 04:37:38