2012-04-28 16 views
1

MySQLのパーティション化を使用してデータを保存し、X日後に情報を保持し、毎日自動的にプロセスがパーティションを作成し、古いパーティションを削除しますここにちょうど落ちる)。データはまた、アクセスをさらに最適化するために、ハッシュによって40個のパーティションにサブパーティション化されます。日々の「テーブルのドロップパーティションを変更し、」クエリはDBは、顕著なパフォーマンスの低下や展示が接続を落とし、このDBに中継アプリケーションを受け実行している間私たちは、MySQL 5.5を実行しているMySQLパーティションの削除に時間がかかります

は、など毎秒以下の要求を提供しています。 InnoDBのこの特定のアプリケーションでは、17個のパーティションが削除されており、それぞれのパーティションには数百万のレコード(1000万を超える場合もあります)があります。 1パーティションあたりのサイズは平均4.5GBです。

私はパーティションのドロップ時にそのボックスの集中IOを見ていないので、私はそれがそれに関連していないと仮定することができます。しかし、CPUの負荷平均は、通常の0.5からその日の約8-10に上昇します。これは数分間続きます。

パーティションのドロップが簡単な論理的なドロップではないと思われますか?私たちが何か間違っていることや、何とかそれを微調整できること、あるいはこれが期待されることは可能ですか?

乾杯

答えて

0

私は、これは古い質問です実現するが、それは未回答ですので、私はそれを旋回を与えるでしょう。

ファイルシステムがext3の場合、ファイルを削除するのに時間がかかることがあります。 XFSとext4はになります。の方が速くなります。

MySQLの観点から高速化するためのトリックは、パーティションのファイルへのハードリンク(ではなく、のシンボリックリンク)を作成することです。 DROP PARTITIONはファイルの参照カウントを単純にデクリメントします。これはほぼ瞬間です。ファイルへのリンクを削除することができます。これにはまだ時間がかかりますが、MySQLはそれを見ません。

関連する問題