【发布时间】:2009-08-11 16:19:55
【问题描述】:
我有一个大的(大约 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
【问题讨论】: