是否有必要在启动mysql时运行mysqlcheck?

时间:2009-08-11 16:19:55

标签: mysql large-data-volumes

我有一个大的(大约10 GB,带有20 GB的innodb缓冲池)数据库,并且注意到当我启动它时,大约在前半个小时它正在运行,数据库将定期锁定并解锁所有表,对于在数据库重启后的前半个小时尝试访问我们网站的用户来说,这是非常不愉快的。

虽然我无法100%确定因果关系,但我注意到数据库锁定和解锁本身的时间与时间一致

/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf --all-databases --fast --silent

perl -e $_=join("", <>); s/^[^\n]+\n(error|note)\s+: The (handler|storage engine) for the table doesn.t support check\n//smg;print; 

正在我的数据库服务器上运行。我的问题是,在启动Mysql时是否真的有必要运行mysqlcheck(默认情况下在mysql /etc/init.d/mysql脚本中)?我在mysqlcheck上找到的Google结果表明它“修复并优化”了表格,但我不希望我的表格被破坏,而且我对这个实用程序提供的优化优势持怀疑态度。

如果重要,我正在运行Mysql 5.0.32

1 个答案:

答案 0 :(得分:3)

没有

这是一个'debian'功能,他们可以从MySQL的库存中进行修改。它旨在阻止人们使用损坏的MyISAM表遇到问题。由于您使用的是InnoDB,我建议您将其删除。我相信它是init.d脚本的一部分,因此您可以对其进行编辑以将其删除。