programing

MongoDB: 대량 삽입(Bulk.insert) 대 다중 삽입(삽입([...]))

muds 2023. 7. 5. 21:03
반응형

MongoDB: 대량 삽입(Bulk.insert) 대 다중 삽입(삽입([...]))

대량 삽입과 여러 문서 삽입 사이에 차이점이 있습니까?

var bulk = db.items.initializeUnorderedBulkOp();
bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } );
bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } );
bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } );
bulk.execute();

db.collection.insert(
   <document or array of documents>
)

그렇게 빠른 것이 있습니까?

@대량 작업이 일반적으로 개별 삽입물보다 빠르다는 Dummy의 말은 맞지만, 버전 2.6 이상에서는 다음을 사용하여 여러 문서를 삽입합니다.collection.insert단지 통사적인 설탕일 뿐입니다.BulkWrite설정할 경우orderedfalse로 플래그 지정. 성능은 순서가 지정되지 않은 대량 삽입과 같아야 합니다.

db.collection.insert(<document array>,{ordered:false})

이 작업은 다음을 반환합니다.BulkWriteResult자세한 내용은 설명서를 참조하십시오.

네, 차이가 있습니다.대량 작업(항상)의 경우 데이터베이스로 한 번만 이동하고 레코드 배치에 대한 작업을 수행한 다음 응용 프로그램으로 돌아갑니다.개별 삽입의 경우, 데이터베이스로 이동하여 삽입을 수행한 후 응용프로그램으로 돌아가서 데이터베이스에 수행하도록 지시하는 모든 삽입 작업에 대해 이 프로세스를 반복해야 합니다.따라서 개별 삽입은 대량 작업에 비해 매우 느립니다.이는 식료품 쇼핑과 같습니다. 만약 당신이 사야 할 모든 것이 나열되어 있다면, 당신은 한 번의 여행에서 그것들을 모두 살 수 있습니다. 하지만 각 품목에 대해, 당신은 그것을 얻기 위해 가게로 운전하고, 집으로 운전하고, 다른 품목을 사기 위해 다시 가게로 운전해야 합니다. 그러면 그것은 매우 효율적이지 않습니다(개의 삽입물처럼).

참고: 셸을 사용하여 MongoDB와 상호 작용할 때는 하나만 처리하면 됩니다.insert대량 및 개별 삽입물에 대한 함수, 당신은 구별해야 합니다.insertOne()그리고.insertMany()MongoDB 드라이버 API를 사용할 때의 작업입니다.그리고 절대 전화해서는 안 됩니다.insertOne()루프 내부(이유: 위의 내 식료품 쇼핑 비유 참조).

언급URL : https://stackoverflow.com/questions/35112165/mongodb-bulk-insert-bulk-insert-vs-insert-multiple-insert

반응형