[SEQUELIZE] create와 bulkCreate

얼음꽃 ㅣ 2024. 11. 4. 10:52

728x90

현재 코드 여러곳에서 create / bulkCreate를 사용하고 있었습니다.

 

많은코드가 얽혀있는 상태에서 항상 특정 부분에서 문제가 생기는데 이때까지는 생각 못했지만...

 

bulkCreate를 트랜잭션까지 연결해서 진행하다보니 시간이 계속 걸림에 따라 트랜잭션 오류가 발생했습니다.

 

생각을 해보니 많은 양의 데이터를 다루게 될때

const arr = [];

const transaction = await db.seqeulize.transaction();

for(let i = 0 ; i < 100000; i++) {
	arr.push(db.table.create(내용, {transaction})
    }
    
 
 ----------------------------------------------------------------
 
 const arr = [];
 
const transaction = await db.seqeulize.transaction();

for(let i = 0 ; i < 100000; i++) {
	arr.push(내용)
    }
    
 await db.table.bulkCreate(내용, {transaction})

 

이런 식으로 보게되면 create는 하나하나 진행하기때문에 개별적으로 transaction을 잡고 순서대로 처리하기에 타임아웃에 덜 민감하지만, bulkCreate는 대량의 데이터를 한번에 묶어서 진행하기때문에 더 민감할 수 밖에 없는 상황이었습니다.

 

이게 한꺼번에 묶어서 처리한다고 좋은게 아니라 상황에 따라서는 다르다는걸 다시 한번 느낍니다.

728x90

'잡다한 지식' 카테고리의 다른 글

[SPF] SPF 레코드  (0) 2024.11.12
[JS] 문제 있는 url 주소 찾기  (1) 2024.10.22
[SQL] tinyint 타입에 대한 인덱싱 작업  (2) 2024.09.26
[SQL] WITH 쿼리  (1) 2024.09.09
[AWS] Redis 와 DynamoDB 비교 (순수 의견)  (0) 2024.08.06