I have a production server and in case of cold resets(e.g. power failures) all MyISAM tables that were in an update process get corrupted. mysqlcheck solves the problem. I recommend putting mysqlcheck with the --auto-repair option in a cron, to fix the rare cases of corruption that happen at runtime.
I got MyISAM corruption sometimes. On my server problem is very heavy load that can overwhelm MySQL causing it to hang. That what happens in real world ;)
在我看来,这使得 MySQL 中的“快速”MyISAM后端仅是非常简单或非常小的数据库的一个选项......
Another problem with MyISAM (although not really database corruption in the strict sense) is that it does not properly support transactions (commit - rollback).
This could also potentially lead to data integrity problems sooner or later (depending on the quality of the implementation of your database layer).
In my opinion this makes the 'fast' MyISAM backend in MySQL only an option for really simple or really small databases ...
发布评论
评论(5)
MySQL 文档对此非常明确: http:// /dev.mysql.com/doc/refman/5.1/en/corrupted-myisam-tables.html
The MySQL documentation is quite explicit about that: http://dev.mysql.com/doc/refman/5.1/en/corrupted-myisam-tables.html
我有一台生产服务器,如果发生冷重置(例如电源故障),更新过程中的所有 MyISAM 表都会损坏。 mysqlcheck 解决了问题。
我建议将 mysqlcheck 与 --auto-repair 选项放在 cron 中,以修复运行时发生的罕见损坏情况。
I have a production server and in case of cold resets(e.g. power failures) all MyISAM tables that were in an update process get corrupted. mysqlcheck solves the problem.
I recommend putting mysqlcheck with the --auto-repair option in a cron, to fix the rare cases of corruption that happen at runtime.
我有时会遇到 MyISAM 损坏的情况。 在我的服务器上,问题是负载非常重,可能会压垮 MySQL,导致其挂起。 这就是现实世界中发生的事情;)
I got MyISAM corruption sometimes. On my server problem is very heavy load that can overwhelm MySQL causing it to hang. That what happens in real world ;)
MyISAM 的另一个问题(尽管严格意义上来说并不是真正的数据库损坏)是它不能正确支持事务(提交 - 回滚)。
这可能迟早会导致数据完整性问题(取决于数据库层的实现质量)。
在我看来,这使得 MySQL 中的“快速”MyISAM后端仅是非常简单或非常小的数据库的一个选项......
Another problem with MyISAM (although not really database corruption in the strict sense) is that it does not properly support transactions (commit - rollback).
This could also potentially lead to data integrity problems sooner or later (depending on the quality of the implementation of your database layer).
In my opinion this makes the 'fast' MyISAM backend in MySQL only an option for really simple or really small databases ...
据我所知,我发现电源故障或同步突然失败会导致 Myisam 数据损坏。
切换到 innodb 将是这里的最佳选择。
To my knowledge, I see that power failure or sudden failure in syncing leads to corruption of Myisam data.
Switching to innodb would be the best choice here.