본문 바로가기
파이썬

파이썬 Python + MySQL-대량 삽입

by º기록 2020. 9. 30.
반응형

저는 데이터베이스와 상호 작용하기 위해 Python의 MySQLdb 모듈을 사용하고 있습니다. 테이블에 행으로 삽입해야하는 매우 큰 목록 (수만 개의 요소)이있는 상황이 있습니다.

지금 내 해결책은 큰 INSERT 문을 문자열로 생성하고 실행하는 것입니다.

더 똑똑한 방법이 있습니까?

 

해결 방법

 

더 똑똑한 방법이 있습니다.


매뉴얼 페이지는 다음과 같이 설명합니다.

기본적으로 MySQL은 자동 커밋으로 실행됩니다. mode enabled. This means that as soon as you execute a statement that updates (modifies) a table, MySQL stores the update on disk to make it permanent. To disable autocommit mode, 다음 문장을 사용하십시오.

SET autocommit=0; 

비활성화 후 autocommit mode by setting the autocommit variable to zero, changes to transaction-safe tables (such as those for InnoDB, BDB, or NDBCLUSTER) are not made permanent immediately. You must use COMMIT to store your changes to disk or ROLLBACK to ignore 변화들.

이것은 데이터베이스 무결성이 가장 중요하다고 가정하는 RDBM 시스템의 매우 일반적인 기능입니다. 대량 삽입은 1ms가 아닌 삽입 당 1 초 정도 걸립니다. 너무 큰 삽입 문을 만드는 대안은 SQL 구문 분석기가 오버로드 될 위험이있는이 단일 커밋을 달성하려고합니다.

 

참조 페이지 https://stackoverflow.com/questions/6482004

 

 

반응형

댓글