MySQL をフリーズさせないために

250 records/sec くらいの速度に抑えてみたところ,レコード数が 1500 万件を超えても正常に動作しています.

# 正確には,テーブルをインデックス用とデータ用の 2 つに分割したので,500 records/sec でレコード数は 3000 万件です.データ用テーブルの各レコードには,ウェブから取ってきたファイルを zlib で圧縮して格納してあります(平均 20KB くらいかな?).

後,MySQLディレクトリを HDD から SSD に移動すると,かなり静かになりました.Primary Key 以外にインデックスを持たないテーブルの InnoDB ファイルのみを HDD 上に配置してある状態です.

追記:データをコミットするのを忘れていたとか,あり得なさ過ぎて笑えます.3 日くらい放置する予定だったので構わないのですが….

追記(2009/03/14):結局のところ,また落ちていました.そして,DB エンジンを InnoDB から MyISAM に変更することで解決されました.一度 pdflush の CPU 使用率が 100% になってフリーズなんて事件もありましたが,とりあえず,データを移行できました.後は,関連するツールを修正すれば,システムの移行も完了となります.