2012-09-27 1 views
1

Mongo 데이터베이스에서 복잡한 함수로 문서를 업데이트하는 가장 빠른 방법은 문자열 검색/바꾸기 또는 sqrt 계산입니까?Mongo 문서 문자열 필드를 복잡한 함수로 빠르게 업데이트하는 방법

이러한 조작이 누락되어 있기 때문에. a $replace, update (아마도 가장 빠를 것입니다. 내 테스트 콜렉션에서는 약 100k 개체에 필드를 설정하는 데 약 50ms 밖에 걸리지 않기 때문입니다).

간단히 말해서 모든 문서를 반복 할 때 약 45 초가 걸립니다. 업데이트하는 동안 사용하고있는 필드에 쿼리를 제한하면 조금 더 빨라집니다.

이 시간은 더 큰 컬렉션에서 커집니다. 따라서 컬렉션을 반복하는 것보다 빠른 방법이 있는지 (예 :지도 축소 작업을 통해?) 문제가 있습니다.

답변

0

아니요 :) 이러한 기능을 기본적으로 지원하지 않으면 읽기 - 수정 - 쓰기 접근 방식을 고수하게 될 것입니다. 50ms 내에 관리하는 머신에서 100k 오브젝트에 필드를 작성할 수 있다면, 동일한 문서를 읽고, 수정하고, 작성해야한다면 45 초 가까이 걸리지 않아야한다는 것입니다. 병목 현상이 해당 패스를 실행중인 시스템이 아니라 데이터베이스라고 확신합니까? 적절히 일괄 처리하고 문서별로 업데이트하지 않으시겠습니까?

+0

나는 두려웠다. 배치 팁 주셔서 감사합니다, 나는 그것을 잊었다. 성능을 15 초로 향상시킵니다 (배치 읽기). – markushell

+0

좋습니다. 큰 $ in 절을 통해 일괄 업데이트를 수행 할 수 있습니다. –

관련 문제