2012-10-26 6 views
0

가능한 중복은 :
Which is faster: multiple single INSERTs or one multiple-row INSERT?효율적인 다중 행 삽입

MySQL을 책을 통해가는 동안, 나는 데이터베이스에 행을 삽입하는 두 가지 방법을 발견했다.

Method 1 

INSERT INTO tableName (col1, col2, col3) VALUES('a', 'b', 'c'); 
INSERT INTO tableName (col1, col2, col3) VALUES('d', 'b', 'c'); 
INSERT INTO tableName (col1, col2, col3) VALUES('e', 'b', 'c'); 

Method 2 

INSERT INTO tableName (col1, col2, col3) VALUES('a', 'b', 'c'), ('d', 'b', 'c'), ('e', 'b', 'c'); 

두 번째 방법이 첫 번째 방법보다 효율적입니까? 또는 단순히 Method 1 번을 여러 번 호출합니까?

+0

[읽기 관련 기사] (http://stackoverflow.com/questions/1793169/which-is-faster-multiple-single-inserts-or-one-multiple-row-insert) –

+0

굉장해, 고마워! –

답변

1

두 번째가 더 효율적입니다.

첫 번째 방법은 행을 삽입 할 때마다 연결을 만듭니다. 두 번째 방법은 단일 연결을 사용하여 모든 행을 삽입합니다. 그러나 클라이언트의 INSERT 문 길이를 제한하는 max_allowed_packet이 있습니다.

+0

max_allowed_packet의 크기에 대한 간단한 아이디어를 줄 수 있습니까? 사용자가 구성 할 수 있습니까? –

+0

@PrashantSingh [This] (http://superuser.com/a/273833) 항목에서 제어하는 ​​내용과 [this] (http://stackoverflow.com/a/5688506/679449) 항목에서 설정을 구성하는 방법에 대해 설명합니다. . – Kermit