2005-12-13 MySQLサーバのパラメータを変更
4月に「初めてMySQLに挑戦した」というお話をしました。あれからMySQLで某ログデータを処理しているのだが,だんだんと処理に時間が掛かるようになってきました。
データベースは(データベースを使う)アプリケーションに応じて正しく設定しなければ,適切に動かないそうです。でも最初はどこをどう設定すれば良いのか分からなかったので,初期値のまま使っておりました。MySQLをインストールすると設定値の見本としてmy-small.ini,my-medium.ini,my-large.iniなどが付いてくるのだが,どれを参考にすればよいのかすら分からなかったのです。
my-large.iniのパラメータを参考にmy.iniを書き換えてみたのだが,性能が劇的に改善しました。正確には計っておりませんがクエリが4倍から5倍,速くなりました。まずHDDの音が変わりました。ディスクI/Oの頻度が減りました。
さてmy.ini をいじっていたらMySQLが起動しない現象に見舞われました。どうやら一度,稼動してしまったデータベースに対してinnodb_log_file_sizeを変更することはできないようです。初期値である「innodb_log_file_size=10MB」に戻したら起動できました。
以下はそのとき遭遇したエラーメッセージです。
- ダイアログ(起動時に表示)「ローカルコンピュータのMySQLサービスを開始できません。エラー1067:プロセスを途中で強制終了しました。」
- アプリケーションログ「Aborting / For more information, see Help and Support Center at http://www.mysql.com.」
- システムログ「MySQL サービスは不正に終了しました。これは 1 回発生しています。次の修正動作が 0 ミリ秒以内に行われます: 何もしない」
このエラーが出たときは,ひとまずmy.iniを初期値に戻せば起動できます。