page_adsence

2010年6月15日火曜日

MySQLのテーブルタイプ

よくMyISAMかInnoDBを使うか迷うのですが、この記事を見て大抵の場合はInnoDBでいいのでは?と思いました。
記事に書かれている通り、MyISAMを使うケースは以下の場合にくらいらしいです。

・完全に検索Onlyの場合(基幹系とかから一定間隔で検索用テーブルを再構築する。それ以外の時間は検索のみのようなケース。)
・ログ系のテーブルを出力のみする場合(insertは3~15倍程度MyISAMが高速)

この記事は各種のベンチマークがとってあり、ほとんどの場合にはMyISAMとInnoDBの速度はほぼ変わっていませんでした。
InsertやUpdate、Deleteなどに関してはトランザクションの処理があるため速度が落ちていますが、
正常に処理をするためにはトランザクションは必須だと思いますので、必然的にテーブルタイプはInnoDBということになります。