我有一个大型(大约 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