본문 바로가기

MySQL

insert 방식에 대한 비교

[1. 개요]

  1. INSERT INTO
  2. INSERT IGONRE INTO
  3. INSERT INTO ~ ON DUPLICATE KEY UPDATE
  4. REPLACE INTO 

table 의 record 를 삽입하기 위한 각 방법의 차이점을 정리

위 순서대로 삽입 속도가 빠름.


[2. INSERT INTO]

  • 가장 기본적인 방법
  • PK 나 unique key 가 중복 된 경우, 에러가 발생하며 삽입되지 않음.
  • 가장 빠른 방법

[3. INSERT IGNORE INTO]

  • PK 나 unique key 가 중복 된 경우, 경고가 발생하며 삽입되지 않음.
  •  

[4. INSERT INTO ~ ON DUPLICATE KEY UPDATE]

  • 아래 쿼리에서 `id` 가 unique key 로 설정되어 있고,
  • `id`=1 인 record 가 이미 있는 경우, 아래 쿼리는,
  • INSERT INTO table_name (id, name) VALUES (1, 'Alice') ON DUPLICATE KEY UPDATE name = 'Alice';
  • unique key 는 그대로 두고, name 만 update 가 된다.
  • 즉, PK 나 unique key 가 중복된 경우, update 가 수행되며,
  • update 대상이 pk 나 unique key 인 경우, 에러가 발생한다.

[5. REPLACE INTO]

  • PK 나 unique key 가 중복된 경우, 이미 있는 record 를 삭제하고 삽임 함.
  • DELETE + INSERT
  • insert 하므로, pk 가 auto_increment 인 경우, pk 가 증가함.

 

'MySQL' 카테고리의 다른 글

[mysql] UPDATE vs REPLACE  (1) 2024.04.03
[작성해야 됨] mysql. 유용한 함수  (0) 2024.02.22
MySQL. 테이블 용량 관리  (0) 2023.09.26
MySQL. unique key  (0) 2023.06.22
MySQL, innodb_autoinc_lock_mode  (0) 2023.06.21