2009-06-20 12 views
1

私は、MySQLのテーブルを最適化するためのさまざまなスケジュールを見てきました。私はしばしばすべてのテーブルを最適化するために毎晩実行するcronジョブをセットアップしました。MySQLでテーブルが最適化される頻度を決定する要因は何ですか?

テーブルを最適化する頻度を決定するためにどのような要素を使用しますか?

+0

どのくらい遅いですか。 ;) –

答えて

2

MySQL themselvesからもこの引用符が良いです。

ほとんどの設定では、OPTIMIZE TABLEをまったく実行する必要はありません。可変長の行に対して多くの更新を行ったとしても、これを週や月に複数回、特定の表に対してのみ行う必要はありません。

テーブル最適化のthis articleに基づく。

これは、テーブルの最適化とディスク上のテーブルのサイズを105MBに縮小する効果があります。また、クエリのパフォーマンスに非常に肯定的な影響を与え、選択クエリの応答時間を0.63秒から0.39秒に短縮します。 N.B.デモのためにmysqlクエリキャッシュがオフになっていました。

ここ"MySQL administrators guide"

OPTIMIZE表から別の引用は、テーブルの修復とキー分析を行いますと、キールックアップが速くなるようにもインデックスツリーをソートします。

この見積もりは決して頻繁に伝えることができないからです。

時期尚早の最適化は、最適化を行い、その後、後に測定し、あなたが何をすべき諸悪の根源

は前尺度です。パフォーマンスの向上が最小限であれば、その後も同じことをしてください。その後も同じことをして、パフォーマンスが大幅に向上するかどうかを確認する必要があります。

+0

申し訳ありませんが、これはそのように最適化されていません。これは、クエリをより速くするために変更するのではなく、基本的にデータベースのデフラグを行います。 –

+0

「ほとんどの設定で」 - 「ほとんどの設定」に含まれているときに何が決定されますか? –

+0

私は知っています。最適化されていないデータベーステーブルは、すべてのクエリに影響します。 –

0

その他の要因は、最適化テーブルを実行した場合よりもクエリ時間のほうが大きくなる可能性があります。

パフォーマンスが問題である場合(およびその場合のみ)、実際のボトルネックを最適化してデータベースの開始を使用してアプリケーションをプロファイルする必要があります。

関連する問題