django 프로젝트에서, 한번에 insert만 몇만번을 해야하는 코드를 작성하고있는데,
bulk_create 를 사용하니 시간이 확 줄게 되었다.
SQL 에서 사용하는 BULK_INSERT 의 기능을 실행시켜주는 장고의 orm이다.
BULK_INSERT에 대해서 간략하게 설명하자면, 대용량 데이터를 로드하는 것이다.
django orm 에서, 개별로 save 를 해주게 되는경우,
connect -> 저장 -> disconnect 가 반복되기 때문에 느리게 저장된다.
하나의 query 문에 많은 일을 하도록 만드는 것이 좋고,
많은 양의 데이터를 한꺼번에 저장해야할 경우 bulk_create를 사용하면 속도를 배로 줄일 수 있다.
사용예시)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #a list of games that need to be created game_list = ['Puerto Rico', 'Eclipse', 'Settlers of Catan', 'Agricola'] #the list that will hold the bulk insert bulk_games = [] #loop that list and make those game objects for g in game_list: new_game = Game() new_game.title = g #add game to the bulk list bulk_games.append(new_game) #now with a list of game objects that want to be created, run bulk_create on the chosen model Game.objects.bulk_create(bulk_list) #done | cs |
출처 :
'Django' 카테고리의 다른 글
Django orm으로 최대값, 가장 나중에 저장된 인덱스 불러오는 방법 (0) | 2018.04.18 |
---|---|
django + mariaDB (0) | 2018.04.16 |
django fliter 에다 list 넣기 (0) | 2018.03.29 |
django query filter, value, distinct (0) | 2018.03.28 |
django query (0) | 2018.03.28 |