MySQL - 하나의 INSERT 문에 몇 개의 행을 삽입할 수 있습니까?
설정된 값의 수에 따라 달라집니까?INSERT 문의 바이트 수에 따라 달라집니까?
다음을 사용하여 무한히 많은 레코드를 삽입할 수 있습니다.INSERT ... SELECT
패턴(다른 테이블에 해당 레코드 또는 그 일부가 있는 경우)을 클릭합니다.
그러나 값을 하드코딩하는 경우INSERT ... VALUES
패턴에서는 스테이트먼트의 크기/길이에 제한이 있습니다.max_allowed_packet은 클라이언트가 데이터베이스 서버에 송신하는 SQL 스테이트먼트의 길이를 제한하며 INSERT 스테이트먼트뿐만 아니라 모든 유형의 쿼리에 영향을 미칩니다.
이상적으로는 Mysql을 사용하면 (한 번에) 한 번 삽입으로 무한한 수의 행을 생성할 수 있지만
MySQL 클라이언트 또는 mysqld 서버가 max_allowed_packet 바이트보다 큰 패킷을 수신하면 Packet too large 오류가 발생하고 연결이 닫힙니다.
max_allowed_packet 변수의 기본값을 표시하려면 MySQL에서 다음 명령을 수행합니다.
show variables like 'max_allowed_packet';
표준 MySQL 설치 기본값은 1048576바이트(1MB)입니다.이 값은 세션 또는 연결에 대해 더 높은 값으로 설정하면 늘릴 수 있습니다.
그러면 모든 사용자의 값이 500MB로 설정됩니다(GLOBAL의 의미).
SET GLOBAL max_allowed_packet=524288000;
새로운 접속으로 새로운 단말기의 변경을 확인합니다.
show variables like 'max_allowed_packet';
이제 무한 레코드 삽입에 대한 오류 없이 작동합니다.감사해요.
쿼리는 다음으로 제한됩니다.max_allowed_packet
일반적으로
max_allowed_packet 제한에 도달합니다.
오류: 1390 준비된 문에 자리 표시자가 너무 많습니다.
1개의 SQL에 65535개의 플레이스 홀더를 넣을 수 있습니다.따라서 한 행에 두 개의 열이 있는 경우 32767 행을 하나의 SQL에 삽입할 수 있습니다.
MySQL에서 50K+ 레코드를 가져오면 일반 오류가 발생함: 1390 준비된 문에 자리 표시자가 너무 많습니다.
mysql 설정에 관한 내용은 http://forums.mysql.com/read.php?20,161869,을 참조하십시오.max_allowed_packet
,bulk_insert_buffer_size
,key_buffer_size
.
1개의 INSERT 문으로 무제한의 행을 삽입할 수 있습니다.예를 들어 INSERT 쿼리를 실행할 때마다 루프가 수천 번 실행되는 저장 프로시저를 실행할 수 있습니다.
또는 INSERT가 트리거를 작동시켜 INSERT를 수행할 수 있습니다.다른 방아쇠를 당기는 거죠기타 등등.
아니요, 값 집합의 수에 따라 달라지지 않습니다.또한 바이트 수에 의존하지 않습니다.
괄호의 깊이와 전체 문장의 길이에는 제한이 있습니다.아이러니하게도 이 두 가지 방법은 모두 thedailywtf.com에서 참조되고 있습니다.단, 위에서 설명한 두 가지 방법은 모두 이러한 제한을 회피합니다.
INSERT마다 삽입할 수 있는 행의 수는 정해져 있지 않지만, 일반적으로 쿼리의 최대 크기는 정해져 있을 수 있습니다.
max_allowed_packet으로 됩니다.
같이 할 수 .mysqld --max_allowed_packet=32M
16M로 하다
/etc/mysql/etc/mysql/mysql/mysql/mysql/my.cnf로 도 있습니다.
언급URL : https://stackoverflow.com/questions/3536103/mysql-how-many-rows-can-i-insert-in-one-single-insert-statement
'it-source' 카테고리의 다른 글
단일 MySQL 문에서 열을 추가하고 외부 키를 만드는 방법은 무엇입니까? (0) | 2023.01.23 |
---|---|
.myd, .myi, .frm 파일에서 MySQL 데이터베이스를 복구하는 방법 (0) | 2023.01.23 |
명령줄에서 PHP 코드 문자열 실행 (0) | 2023.01.15 |
도커 MariaDB 컨테이너의 영구 스토리지 컨테이너를 백업할 수 없습니다. (0) | 2023.01.15 |
Larabel 마이그레이션에서 열을 null로 만들 수 없습니다. (0) | 2023.01.15 |