私は大規模な (20 GB の innodb バッファー プールで約 10 GB) データベースを持っていますが、それを開始すると、実行中の最初の約 30 分間、データベースが定期的にすべてのテーブルをロックおよびロック解除し、非常に不快になることに気付きました。データベースの再起動後、最初の 30 分間、サイトにアクセスしようとしたユーザー向け。
因果関係を 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 を実行しています