약 200 명의 사용자로부터 약 20 종류의 문서로 구성된 단일 데이터베이스 (300MB & 42,924 개의 문서)가 있습니다. 문서의 크기는 몇 바이트에서 여러 킬로바이트 (150KB 정도)입니다.CouchDB - 필터링 된 복제 - 속도를 향상시킬 수 있습니까?
서버가 언로드되면 다음 복제 필터 기능을 완료하는 데 약 2.5 분이 걸립니다. 서버가로드되면 10 분 이상 걸립니다.
누구나이 시간이 예상되는지 여부에 대해 의견을 말할 수 있으며, 그렇지 않은 경우 더 좋은 성능을 얻으려면 어떻게해야할까요? 각 가져온 문서가 복잡한 논리를 실행하기위한 복제 여부를 결정하기 때문에
function(doc, req) {
acceptedDate = true;
if(doc.date) {
var docDate = new Date();
var dateKey = doc.date;
docDate.setFullYear(dateKey[0], dateKey[1], dateKey[2]);
var reqYear = req.query.year;
var reqMonth = req.query.month;
var reqDay = req.query.day;
var reqDate = new Date();
reqDate.setFullYear(reqYear, reqMonth, reqDay);
acceptedDate = docDate.getTime() >= reqDate.getTime();
}
return doc.user_id && doc.user_id == req.query.userid && doc._id.indexOf("_design") != 0 && acceptedDate;
}