ManagedObjectContext를 저장하는 성능은 포함 된 (변경되지 않은) 객체의 수에 따라 다릅니 까?

StackOverflow https://stackoverflow.com/questions/2229690

문제

일반적인 coredata/sqlite 질문

저장할 때이 두 시나리오 사이에 큰 차이가 있습니까? NSManagedObjectContext sqlite 저장소 사용 :

  • 추가/변경/삭제 후 하나 a NSManagedObjectContext 포함 10 그렇지 않으면 변경되지 않았습니다 NSManagedObjects
  • 추가/변경/삭제 후 하나 a NSManagedObjectContext 포함 10'000 그렇지 않으면 변경되지 않았습니다 NSManagedObjects
도움이 되었습니까?

해결책

Enterprise Objects (핵심 데이터에서 발전한)에 대한 나의 경험을 일반화하면 두 시나리오가 인덱싱없이 두 번째 시나리오가 똑같이 빠르며 두 번째 시나리오는 색인화로 약간 느리게 느려질 것이라고 말할 것입니다.

SQL 저장소를 사용하여 하나의 객체를 추가하는 비용은 그래프에있는 다른 객체 수에 관계없이 크게 고정됩니다. 인덱스는 인덱스가 다른 기존 객체에 의존하기 때문에 스케일링 효과를 유발합니다. 그러나 대부분의 경우 대부분의 경우 중요하지 않습니다.

그래프 내의 관계가 더 복잡할수록 더 많은 저축이 총 그래프 크기에 의해 영향을받습니다. 분명히 10 개의 객체 만있는 그래프가 있다면 관계에 10 개 이상의 객체를 가질 수 없습니다. 10,000이있는 경우 관계가 훨씬 크고 처리하는 데 시간이 오래 걸립니다.

요약하면, SQL 저장소가있는 코어 데이터는 그래프 크기에 크게 영향을받지 않는 것으로 보입니다.

다른 팁

프로파일 링은 큰 차이가 있는지 알려줍니다. 그러나 상점 코디네이터의 유형이 공연에 영향을 미칠 것으로 생각됩니다. SQLITE 데이터베이스에서 객체를 업데이트하는 것은 XML 트리에서하는 것보다 빠르고 확장 가능할 것입니다.

나의 이전 경험에서는 큰 차이가 없습니다. 추가/변경/삭제되는 객체에 인덱스 된 속성이 많이 포함 된 경우 인덱스 된 속성이없는 객체의 경우와 비교할 때 약간 더 많은 시간이 걸리지 만 인덱스도 수정되므로 예상됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top