2009-04-14 4 views
2

트리 구조의 데이터 집합이 있습니다. 현재이 데이터를 이진 파일에 저장합니다. 단점은 이러한 데이터의 정렬, 필터링이 매우 어렵다는 것입니다. 단지 데이터 크기가 클 때 하드 디스크에서 메모리로 읽는 것이 매우 느립니다.트리 구조 데이터를 XML로 변환 - 성능 문제

그래서 이러한 트리를 XML 파일에 저장하는 것에 대해 생각하고 있습니다.

  1. XML은
  2. XML 조작이 아니라 지역 사회에서 지원하는 필터링 및 데이터 조작을 위해 라이브러리에 내장되어있어 있기 때문에 지금은 내 자신의 데이터 구조 조작을 지원해야하는 반면 나는이 원하는 이유는,이다

XML에 대한 .Net 지원이 주어지면 이진 파일에서 데이터를 쿼리하는 것과 달리 XML에서 데이터를 쿼리하는 것이 로딩 속도 측면에서 더 빠르지 않을지 궁금합니다. 스위치를 만드는 데 나에게 어떤 이점이 있습니까? 프로그래밍에 관한 한, XML은 내 자신의 트리 데이터 구조를 깨뜨린 것이지만, 로딩 속도는 어떨까요?

답변

1

경험상 XML을 사용하면 데이터를 가장 작게 또는 가장 빠르게 관리 할 수 ​​있습니다.

귀하의 설명은 확실히 말할 수있는 세부 사항을 제공하지 않지만 아마도 관계형 데이터베이스가 더 나은 접근 방법 일 수 있습니다. 일반적으로 트리 구조를 관계형 모델로 매핑하는 것은 어렵지 않습니다. (반대 방향으로가는 것은 다른 이야기입니다 ...)

+0

매우 간결하게 입력하십시오. +1 – Cerebrus

+0

트리 구조를 관계형 모델로 맵핑 ...이를 수행하는 방법에 대한 지침은 무엇입니까? 트리 노드를 열과 테이블로 매핑하는 방법은 무엇입니까? 전자는 고도로 구조화되지 않았지만 나중에 정의됩니다. – Graviton

+0

더 많은 링크가있는이 소개는 http://www.rockstarapps.com/wordpress/?p=82 에 있습니다. : 깊게 중첩 된 쿼리를 최적화해야하는 경우가 아니라면 "20 % 정도 아래로"라는 섹션에 도달하면 읽기를 멈출 수 있습니다. –

0

XML은 텍스트이기 때문에 모든 데이터를 텍스트 표현으로 직렬화해야하므로 데이터 크기가 현재 트리 크기보다 클 것입니다. 따라서 로딩이 느려지거나 느려지지 않을 수 있으며 이는 현재로드 구현에 따라 다릅니다.

나머지는 데이터를 쿼리하고 수정하는 것이 올바르게 완료되면 매우 간단하고 효율적입니다. 그러나 텍스트 특성으로 인해 일반적으로 잘 수행 된 이진 구현을 초과 할 수 없습니다.

트리 데이터 변환 (표시 등)이 필요하면 XML을 사용하는 것이 좋습니다. XSL Transformations을 사용하면 거의 프로그래밍하지 않고 데이터의 XML, HTML 또는 텍스트 표현을 거의 만들 수 있습니다. 디버깅) 노력.

0

성능 측면에서 보면 XML은 거의 확실하게 이진 구조와의 경쟁을 상실하게됩니다. 그러나 개발 및 기술적 인 관점에서 볼 때 XML이 손을 잡았다는 견해는 옳습니다.

@ Dan의 진술과 완전히 일치합니다. XML 데이터 구조의 성능은 데이터 크기가 커짐에 따라 기하 급수적으로 감소합니다. 대부분의 응용 프로그램은 대개 데이터베이스에 저장되거나 이진 데이터에 직렬화되는 매우 많은 양의 데이터를 처리하지 않기 때문에 사용이 일반적입니다.