我有一个很大的数据库(大约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
发布于 2009-08-11 16:50:36
不是的。
这是一个'debian‘功能,他们从股票MySQL修改。它的设计目的是防止人们遇到损坏的MyISAM表的问题。由于您正在使用InnoDB,因此我建议您将其删除。我相信它是init.d脚本的一部分,所以您可以编辑它来删除它。
https://stackoverflow.com/questions/1261459
复制相似问题