2012-12-17 3 views
1

이것은 알고리즘 질문 ​​일 뿐이며 큰 그림 데이터베이스에 대해 가장 효율적인 것이 무엇인지 파악하려고합니다. 몇 개의 파일 (예 : userid/profile.png userid/avatar.png)에 대해 하나의 디렉토리 (예 : pictures/userid_pic_profile.png) 또는 여러 디렉토리에 많은 파일을 저장하는 것이 더 합리적입니까?여러 개의 디렉토리 또는 하나 - 데이터 저장 및 액세스

+0

중복 http://stackoverflow.com/questions/9821947/directory-structure-for-large-number-of-files? –

+1

종류의, 그러나 아직도 효율성 질문에 응답하지 않는다. 그것은 꽤 많은 제안 일뿐입니다 (경험에서 동의하기 때문에 대답으로 표시 한 것과 같습니다). – user1470511

+0

무엇을 위해 더 효율적입니까? 한 번에 하나씩 사진에 액세스하고 있습니까? 그들 중 큰 부분 집합을 분석하려고합니까? 액세스 권한이 있습니까? 시간이 지남에 따라 파일이 변경됩니까? –

답변

0

조직상의 이유로 혼자 여러 개의 디렉토리를 사용해야합니다.

또한 하나의 디렉토리에 매우 많은 수의 파일이있는 일부 운영 체제의 경우 파일을 나열하고 검색 할 때 실제 속도가 느려질 수 있습니다 (단일 디렉토리에서 수천 개에서 수만 개의 파일을 말하고 있습니다).

+0

이것을 백업 할 수있는 알고리즘이나 수학이 있습니까? 나는 직감만으로 그 일을 할 것이지만, 이것이 어떤면에서 입증되었는지보기를 원할 것입니다. – user1470511

+1

@ user1470511 - 속도가 느려 집니까? Experience;) – Oded

+0

특정 파일 시스템이 디렉토리 구조를 구현하는 방법에 따라 크게 달라집니다. 일부는 정렬되지 않은 선형 파일 이름 목록을 사용합니다. 일부는 정렬 된 선형 파일 이름 목록을 사용합니다. 일부는 더 나아가 B- 트리 (또는 유사)를 사용하고, 파일 이름을 입력합니다. 첫 번째 경우 평균 액세스는 두 번째 및 세 번째 파일의 수에 대한 O (N)이며 O (log N)은 B 트리의 경우 더 좋은 상수와 함께 달성 가능해야합니다. – Vatine

관련 문제