목적: 100,000개가 넘는 데이터 중에서 무작위로 하나의 데이터를 선택합니다.
내 방법: data=db[item].find().skip(random_num).limit()
문제 발생: 데이터를 무작위로 찾는 데 시간이 오래 걸립니다. 프로필 테스트에 따르면 find() 때문이라고 합니다. 어떻게 최적화하나요?
某草草2017-04-28 09:06:33
mongo의 Aggregation Framework를 아시나요? 고성능의 핵심을 확인해 보세요. 라이브러리 간 또는 참조가 아닌 한 사용할 수 있습니다.
阿神2017-04-28 09:06:33
먼저 항목에 대한 색인을 생성하면 쿼리 속도가 크게 향상될 수 있습니다. 또한 난수 조건은 특정 쿼리 조건(난수로 구성)으로 변환될 수 있습니다. 또한 집계 프레임워크는 귀하와 같은 간단한 찾기 쿼리에는 도움이 되지 않습니다.