하위 폴더 생성시에, 최대로 생성할 수 있는 갯수

aswip의 이미지

프로그램 데이터의 구조상, 한번에 약 10만개의 폴더를
생성해야 할 경우..

한 폴더 밑에 10만개의 폴더를 만드는 것과,

각각 100개의 하위 폴더를 만들고,
만들어진 100개의 폴더 밑에, 10만개의 폴더를 분할 해서

저장하는 것과 어느것이 더 처리 효율이 좋을까요?

혹시, 이 부분에 대해서 처리 경험이 있으신분이 계신다면,
조언 부탁드리겠습니다.

vacancy의 이미지

특별히 경험이 있는 것은 아니지만요.
여러 단계로 나누는 것이 좋을 것 같습니다.

한 디렉토리에서 파일에 접근 할 때
파일시스템에서는 아마도 이름을 가지고
Sequential Search 를 해야할 것 같은데요.

10만개가 한 곳에 있다면 파일 하나 찾는데
평균 5만번의 비교가 필요할 것 같습니다.
그런데 100개의 폴더 밑에 1000개씩 있다면,
폴더를 찾는데 평균 50번, 그 아래서 파일을 찾는데 평균 500번 해서
평균 550번 정도의 비교면 가능할 것 같네요.
이 정도의 차이면 디렉토리 이동에 드는 오버헤드는
충분히 무시할 수 있을 것 같습니다.

뭐, 결국은 파일시스템에 달린 것이겠지만요.

최종호의 이미지

당연히 나누셔야죠!

depth에는 별 제한이 없을텐데 path 의 길이제한이
PATH_MAX 로 정의되어 있으니 넘지 않도록 주의하시면 되겠네요.