INSERT UPDATE REPLACEの使い分け

なければ INSERT、あれば UPDATE
http://txqz.net/blog/2007/01/17/1920

MySQLで INSERT時に重複する KEYが既に存在する場合の動作のオプション
http://fdays.blogspot.jp/2009/01/mysql-insert-key.html

INSERT IGNORE INTO ...
(効能)重複するKEYが既に存在する場合、データは登録されない

    INSERT IGNORE INTO members(id, name) VALUES(2, 'TARO');



INSERT INTO ... ON DUPLICATE KEY UPDATE ...
(効能)重複するKEYが既に存在する場合、そのデータをUPDATEする

    INSERT INTO members(id, name) VALUES(2, 'TARO') ON DUPLICATE KEY UPDATE cnt = cnt + 1;



REPLACE INTO ...
(効能)重複するKEYが既に存在する場合、そのデータをDELETEしてからINSERTする(※UPDATEではない)

    REPLACE INTO members(id, name) VALUES(2, 'TARO');



いずれも、重複するKEYが存在しなければ普通のINSERT文と同じ結果になる。