場合によっては、日付による MySQL パーティショニングを使用してデータを保存し、X 日間の情報を保持し、毎日、自動プロセスが先にパーティションを作成し、古いパーティションを削除します (ここではアーカイブが行われていないことに注意してください。削除するだけです)。また、アクセスをさらに最適化するために、データは何らかのハッシュによって 40 のパーティションにサブパーティション化されます。
毎日の「alter table drop partition」クエリが実行されると、DB のパフォーマンスが著しく低下し、この DB でリレーしているアプリケーションの接続が切断されたり、1 秒あたりのリクエスト数が減少したりします。
InnoDB を使用してこの特定のアプリ用に MySQL 5.5.17 を実行しており、ドロップされるこれらの各パーティションには数百万のレコード (おそらく 1,000 万を超える) があります。パーティションあたりのサイズは平均 4.5GB です。
パーティションのドロップ時にそのボックスで集中的な IO が発生していないので、それとは関係がないとしか思えません。ただし、CPU 負荷の平均は、通常の 0.5 からその時間帯に約 8 ~ 10 に上昇します。これは数分間続きます。
パーティションの削除は、簡単な論理的な削除ではないでしょうか? 何か間違ったことをしている可能性はありますか、それとも何らかの形で微調整できるのでしょうか、それともこれは予想されることですか.
乾杯