1

私は大規模な (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 を実行しています

4

1 に答える 1

3

いいえ。

これは、ストック MySQL から変更された「debian」機能です。MyISAM テーブルの破損による問題が発生するのを防ぐように設計されています。InnoDB を使用しているため、削除することをお勧めします。これは init.d スクリプトの一部だと思うので、それを編集して削除できます。

于 2009-08-11T16:50:36.167 に答える