前回のUPDATEに続いて今回はDELETEとINSERTのパフォーマンスを比較します。
測定環境についてはこちらを参照して下さい。
・データ件数は100万件
・こちらの構造のテーブルをInnoDBとMyISAMで作成して処理速度を比較
以下SQL中の「テーブル名 normal」にはMyISAMなら normal2 がセットされます。
3.PrimaryKeyでDELETE
DELETE FROM normal WHERE id = %d
※%idは1~100万の範囲でランダムに変化
| スレッド数 | MyISAM | InnoDB |
MyISAMの性能にかなりばらつきがありますが4~7倍程度MyISAMが高速です。
InnoDBは同時スレッド数による性能変化がまったく見られません。
4.INSERT
INSERT IGNORE INTO normal (id, name, password, email, city, zip, dob, country_id, state_id) VALUES (%d, %s, %s, %s, %s, %s, NOW(), %d, %d)
※%dや%s等はすべてランダムな値がセットされます。
| スレッド数 | MyISAM | InnoDB |
3~15倍程度MyISAMが高速です。
特に、同時スレッドに比してQPSが上昇していきます。
通常、更新があるシステムの場合はInnoDBを採用するのが原則ですが、
ログ出力など細かいこと?を気にしない用途の場合にMyISAMはかなり有効だと言えます。





