많은 삽입을 실행하는 mySQL 저장 프로 시저가 있습니다. 성능이 좋지 않았기 때문에 INSERT 용 문자열을 작성하는 대신 모든 루프에 삽입하지 않기로 결정했습니다. 프로 시저가 끝나면 준비된 명령문으로 모든 값에 대해 하나의 큰 INSERT 만 수행합니다.준비된 진술의 최대 길이는 얼마입니까?
문제는 내 문장이 VARCHAR보다 커야한다는 것입니다. 그것은 TEXT 여야합니다.
질문 : 할 수 있습니까? 또는 준비된 명령문은 VARCHAR 여야합니까? 준비된 진술의 최대 길이는 얼마입니까? 대한
VARCHAR = 65535 바이트의 최대 길이; 최대 길이는 TEXT = 65535 바이트입니다. –
배치 업데이트는 어떻게됩니까? 여러 개의 insert 문 (각 준비 문)을 실행하고 10 개의 삽입 이후에 일괄 적으로 적용합니다. –
나는 임시 테이블의 옵션을 선택했다. 나는 거기에 모든 것을 삽입하고 결국에는 하나의 INSERT INTO mytable SELECT * FROM mytemp; 그것은 성능을 극적으로 향상시킵니다. 가장 좋은 옵션 성능은 randiel의 답변 일 것입니다. 왜냐하면 파일에서 데이터를로드하는 것이 mysql에서 가장 최적화 된 배치 삽입 옵션이라는 것을 알기 때문입니다. 또한 @ BillKarwin 귀하의 첫 번째 의견은 기본적으로 내 질문에 대답합니다. –