2011-02-08 8 views
3

私はそれに約40 012 CREATE INDEX文を持つファイルを持っています。私は以前このファイルをプロダクションデータベースに送りましたが、現在はコマンドを実行しています。インデックス作成中にMySQLを再起動するのは悪いですか?

あまりにもずっと前に、私は誤って私の本番データベースで2つの低速クエリを実行しましたが、今では私が作品をガムアップしている可能性があります。私が許容できないほど遅いクエリを実行すると、通常MySQLを再起動しますが、MySQLがこれらの文を実行している間に実行するのが安全かどうかわからないため、実行したくないと確信しています。CREATE INDEX

詳細については、select * from information_schema.statistics where index_name like 'index_%'を実行すると、通常は数分ごとに新しいインデックスが表示されますが、しばらくの間は14個のインデックスで停止しているようです。

サーバを再起動する必要がありますか?

+0

答えはありませんが、将来的に知っているだけです。MySQL ['KILL'](http://dev.mysql.com/doc/refman/5.0/ja/kill)を使って遅いクエリを強制終了することができます。 html)ステートメントを使用してサーバーを再起動する必要はありません。 –

+0

これは、少なくとも私の暴走するクエリがなくなったために役立ちます。ありがとう。 –

+0

私はcreate indexがテーブルのデータとは別の新しいインデックスファイルを書き込むと思います...再起動すると悪い場合にはそれらのインデックスが破損します。その場合、インデックスを削除して後で再構築できるはずです。 – timh

答えて

1

問題ありません。 show create table FOOを使用して、欠落しているインデックスを確認し、適用してください。最後に、optimize tableを実行してすべてのインデックスを再構築することができます。

これらの4create index文が同じテーブルにある場合は、この(およびそれ以上の)クエリを必ず1つのテーブルに書き直す必要があります。そうでなければ、あなたは39回以上待っています。

関連する問題