[MONGODB] 빠른지도에 비해 MongoDB를 집계 프레임 워크인가 / 감소?
MONGODB빠른지도에 비해 MongoDB를 집계 프레임 워크인가 / 감소?
집계 프레임 워크는 MongoDB를 2.2에 도입되어,지도를 통해 특별한 성능 향상이있다 / 감소?
그렇다면, 왜, 어떻게, 얼마나하면?
(이미 나 자신에 대한 테스트를 완료했으며, 성능은 거의 동일)
해결법
-
==============================
1.감소 다중 빠른지도 이상의 것을 보여줍니다 통합 프레임 워크, 일반적으로 빠른 크기 순서 인 (자신의 데이터를 사용하는 것을 포함)를 개인적으로 실행 한 모든 테스트.
감소 다중 빠른지도 이상의 것을 보여줍니다 통합 프레임 워크, 일반적으로 빠른 크기 순서 인 (자신의 데이터를 사용하는 것을 포함)를 개인적으로 실행 한 모든 테스트.
:이있어 - 그냥 (필자는 집계의 성능을 측정하기 원하기 때문에, 그것은 데이터 페이지에 걸립니다 시간을 먼저 캐시를 따뜻하게 아니라 청산 OS의 캐시보다) 당신이 게시 된 데이터의 1 / 10을 복용
맵리 듀스 : 1,058ms 집계 프레임 워크 : 133ms
통합 프레임 워크에서 $ 일치를 제거하고 {조회} 맵리 듀스에서 (모두 그냥 색인을 사용하고 그렇지 우리가 측정 할 무엇 때문에)와 키 2하여 전체 데이터 집합을 그룹화 내가 가지고 :
맵리 듀스 : 18,803ms 집계 프레임 워크 : 1,535ms
사람들은 내 이전 실험과 일치 아주 많이 있습니다.
-
==============================
2.내 벤치 마크 :
내 벤치 마크 :
== 데이터 생성 ==
약 350 바이트 쉬운 (파이썬) 4million 행을 생성합니다. 각 문서는 이러한 키가 있습니다 :
dB = 연결 ( '127.0.0.1'). 테스트 #의 몽고 연결 random.seed (1) _ 대 범위 (2) : key1s = hexlify (os.urandom (10)). 디코드 범위 ( 'ASCII') 용 _ (10)] key2s = hexlify (os.urandom (10)). 디코드 범위 ( 'ASCII') 용 _ (1000)] baddata = '약간 긴 날'+ '*'* (300) (2000) 범위의 I : DATA_LIST = [{ '키 1': random.choice (key1s) '키 2': random.choice (key2s) 'baddata'baddata, '값'10 } 범위 _ 대 (1000)] DATA_LIST에서 데이터 : db.testtable.save (데이터) 총 데이터 크기는 몽고에 6기가바이트에 대해이었다. (포스트 그레스와 2GB)
== 테스트 ==
나는 몇 가지 테스트를했지만 한 결과를 비교에 충분하다 :
참고 : 서버가 다시 시작되고, OS 캐시가 캐시의 효과를 무시하고, 각 쿼리 후 청소한다.
QUERY : 각 키 2에 대한 모든 키 1 = someValue와 가진 행 (200K에 대한 행)과 합계 값을 집계
질의 :
감소 /지도 :
db.testtable.mapReduce (함수 () {발광 (this.key2, this.value);}; values.forEach (함수 (V) {내가 + = V], 기능 (키 값) {VAR 난 = 0}) 나는를 반환;}, {아웃 : {인라인 : 1}, 쿼리 : {키 1을 '663969462d2ec0a5fc34를'}})
골재:
db.testtable.aggregate ({$ 일치 : {키 1 : '663969462d2ec0a5fc34'}}, {$ 그룹 : {_id : '$ 키 2'는 팝 : {$ 합계 : '$ 값을'}}})
그룹:
db.testtable.group ({키 : 키 2 {1}, COND {KEY1 '663969462d2ec0a5fc34가'} 감소 : 함수 (OBJ, 이전) {prev.csum + = obj.value} 초기 {CSUM : 0}})
from https://stackoverflow.com/questions/13908438/is-mongodb-aggregation-framework-faster-than-map-reduce by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoError 다음 '커서'옵션은 설명 인수로 집계을 제외하고, 필요 (0) | 2019.12.03 |
---|---|
[MONGODB] MongoDB를이 - 콜렉션에서 그룹 당 최대 속성을 가진 문서를 얻을 수 (0) | 2019.12.03 |
[MONGODB] MongoDB를 : 어떻게 배열 내의 인덱스에 의해 참조 배열에서 하나의 하위 요소를 업데이트하려면 어떻게해야합니까? (0) | 2019.12.03 |
[MONGODB] 에 '또는'조건 MongoDB의 쿼리 (0) | 2019.12.03 |
[MONGODB] 몽구스, 발견과 특정 필드를 선택 (0) | 2019.12.03 |