2009-08-11 4 views
1

私は大容量(約10GBと20GBのinnodbバッファプール)のデータベースを持っており、起動すると約30分前にデータベースが定期的にすべてのテーブルをロックしてロックを解除し、データベースを再起動してから最初の30分に私たちのサイトにアクセスしようとするユーザーにとっては、かなり不愉快です。mysqlを起動するときにmysqlcheckを実行する必要がありますか?

Iは、因果関係の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

答えて

3

を実行しているこれは、彼らが株式のMySQLから変更することを 'Debianの' 機能です。これは、MyISAMテーブルが壊れていることで人々が問題に陥るのを防ぐために設計されています。 InnoDBを使用しているので、削除することをお勧めします。私はそれがinit.dスクリプトの一部であると信じているので、それを編集して削除することができます。

+0

優秀なニュース!早速のご返事ありがとうございます! – wbharding

関連する問題