나는 멀티 테넌트 웹 응용 프로그램에서 작업합니다. 다소 큰 컨테이너 일 수있는 사용자 컨테이너를 수집해야하는 경우가 많습니다. 이 기준을 충족 많은 문서, 수천 또는 수백만의 수백과 같이있을 수mongodb에서 많은 문서 삭제
return self::remove(array('LISTID' => $listId), array('safe' => true));
어떤 경우 : 내가 좋아하는 많은 문서 뭔가를 삭제 할 수 있어야합니다. 나는이 작업이 많은 시간과 스로틀 서버를 소비 할 수 있다고 걱정한다. 많은 문서가있을 경우, 그들에게 의사와 같은 오프라인 뭔가를 삭제하는 가치 큐 같은 작업입니다 :
while (there are documents) {
delete(1000 documents);
sleep();
}
내가이 경우 MongoDB를 더 작은 portios하여 데이터를 삭제하는 방법을 생각해 본다. 어떤 이유로 mongodb에서 오히려 빠른 행을 삭제하는 몇 가지 이유 때문에 mongodb에 데이터를 저장하는 프로토 타입이 있는데, 비슷한 수의 행을 삭제하면 mysql에서 훨씬 더 오래 걸립니다. 그러나 mysql에서 테이블의 각 행에는 다른 테이블에 대한 참조가 있습니다 데이터가 있지만 종속 테이블에 레코드가없는 경우에도 mongodb에서 훨씬 빨라 보인다. mongodb에서는 모든 데이터를 문서에 저장하지만, 어쨌든 나에게는 이상한 것처럼 보인다. 아니면 불필요한가요?
감사합니다.
몇 명의 임차인이 있습니까? 수천 명이 아닌 경우 세입자 당 컬렉션을 가지고 전체 컬렉션을 삭제할 수 있습니다 (하나의 세입자에 대한 모든 데이터 삭제). 여러분이 무엇을 하든지간에 이것은 거의 확실하게 오프라인의 일괄 처리 작업입니다. – Thilo
10 억 명의 세입자가 될 수 있습니다. 이 작업은 한 목록의 데이터를 지워야하며 세입자는 여러 목록을 가질 수 있습니다. – Oleg