BULK INSERT1 [Python] MySQL 대규모 데이터 삽입 로직 고도화: 비동기, Bulk Insert, 멀티스레드 적용기 프로젝트에서 나스닥에 상장되어있는 약 만개의 종목들에 대해 날짜별로 종가, 시가, 고가, 저가의 최소 40년치의 데이터를 필요로 했다. 대강 계산해봐도 약 10000 * 365 * 40 = 146,000,000 개의 데이터를 삽입해야했고, 매일매일 만개의 레코드씩을 추가로 삽입해야 했다. 그래서 이김에 대규모 데이터 삽입 로직을 좀 열심히 만들어봤다. 먼저 내가 겪었던 로직 고도화 단계는 다음과 같다.*()안에 적힌 값은 한달 단위 데이터들을 넣을때 소요되는 시간이다. 1. 단일 쓰레드, Batch 미사용 (97m)2. INSERT IGNORE 사용하여 중복 데이터 무시 (80~100m)3. 단일 쓰레드 방식 + 비동기처리 통한 동시 작업과 executemany 통한 네트워크 오버헤드 감소 (48~93.. 2025. 1. 25. 이전 1 다음