Programing

MySQL INSERT INTO 테이블 VALUES .. vs. INSERT INTO 테이블 SET

lottogame 2020. 4. 11. 09:36
반응형

MySQL INSERT INTO 테이블 VALUES .. vs. INSERT INTO 테이블 SET


간의 주요 차이점은 무엇입니까 INSERT INTO table VALUES ..와는 INSERT INTO table SET?

예:

INSERT INTO table (a, b, c) VALUES (1,2,3)

INSERT INTO table SET a=1, b=2, c=3

그리고이 둘의 성능은 어떻습니까?


내가 알 수있는 한 두 구문은 동일합니다. 첫 번째는 SQL 표준이고 두 번째는 MySQL의 확장입니다.

따라서 성능면에서 정확히 동등한 성능이어야합니다.

http://dev.mysql.com/doc/refman/5.6/en/insert.html 은 다음과 같이 말합니다.

INSERT는 기존 테이블에 새 행을 삽입합니다. 명령문의 INSERT ... VALUES 및 INSERT ... SET 양식은 명시 적으로 지정된 값을 기반으로 행을 삽입합니다. INSERT ... SELECT 양식은 다른 테이블에서 선택된 행을 삽입합니다.


확장 기능은 삽입 및 업데이트에 비슷한 구문을 허용하기위한 것입니다. Oracle에서 유사한 구문 트릭은 다음과 같습니다.

UPDATE table SET (col1, col2) = (SELECT val1, val2 FROM dual)

구문은 (어쨌든 MySQL에서는) 동일하므로 구문을 선호합니다 INSERT INTO table SET x=1, y=2. 특히 많은 열을 삽입 할 때 문에서 오류를 쉽게 수정하고 잡을 수 있기 때문입니다. 10 또는 15 개 이상의 열을 삽입 해야하는 경우 (x, y) VALUES (1,2)내 의견으로 구문 을 사용하여 무언가를 혼합하는 것이 정말 쉽습니다 .

다른 SQL 표준 간의 이식성이 문제인 INSERT INTO table (x, y) VALUES (1,2)경우 선호 될 수 있습니다.

단일 쿼리에 여러 레코드를 삽입하려는 경우 INSERT INTO ... SET구문이 작동 하는 것처럼 보이지만 다른 레코드 는 작동 하지 않습니다 . 그러나 대부분의 실제 경우에는 레코드 세트를 반복하여 삽입을 수행합니다.하지만 하나의 큰 쿼리를 구성하여 하나의 쿼리에서 테이블에 여러 행을 삽입하기 위해 하나의 큰 쿼리를 구성하는 경우가 있습니다. 각 행의 성능이 향상 될 수 있습니다. 정말 몰라

참고 URL : https://stackoverflow.com/questions/861722/mysql-insert-into-table-values-vs-insert-into-table-set

반응형