WEB 개발을 하다 보면 파일을 작성하는 상황을 자주 접하게 되는데, 가장 흔한 경우가 이미지 파일을 저장하는 경우입니다. 파일 수가 많지 않으면 효율성에 대해 걱정할 필요가 없습니다. 그러나 사용자 수가 많고 사진 수가 많은 경우 사진 파일을 저장하는 방법은 전체 사진 저장 시스템의 효율성에 직접적인 영향을 미칩니다.
보통 디렉터리에 하위 파일이 10,000개 있으면 특정 파일을 읽는 속도가 크게 떨어진다는 말이 있습니다. 그럼 이 말이 맞는 걸까요, 틀리는 걸까요? 아래를 살펴보겠습니다.
질문: 단일 디렉터리에 너무 많은 하위 파일이 성능에 영향을 미치는 이유는 무엇입니까? 예를 들어 디렉터리에 10,000개의 하위 파일이 있는 경우 특정 파일을 읽는 속도가 느려집니다. 파일 인덱스와 관련이 있나요?
답변: 네, 인덱스와 관련이 있습니다. 10,000은 너무 많지 않습니다. 수백만 명에게서 알 수 있습니다. 그러나 10,000을 초과하지 않는 것이 좋습니다.
질문: 수백만 개의 느린 파일은 파일 시스템 전체와 관련이 있는데, 수백만 개의 파일을 지원하는 유사한 파일 시스템은 아무것도 아닙니다.
답변: 내 말은 수십만 또는 수백만 개의 파일이 하위 디렉터리 없이 디렉터리에 직접 배치될 수 있다는 것입니다. 이때 디렉터리 인덱스를 검색하는 것은 매우 리소스 집약적입니다.
지원되는 수가 제한된 이유는 디렉터리 개체 자체의 크기가 제한되어 있기 때문입니다. 디렉터리는 파일 이름과 파일에 해당하는 inode 번호를 보유하는 컨테이너입니다. 수용할 수 있는 것도 제한되어 있습니다.
특정 파일을 읽는 속도는 영향을 미치지 않습니다. 하지만 찾기가 어렵습니다. 일부 파일 시스템의 인덱싱 메커니즘은 불완전하고 최적화 알고리즘도 없기 때문에 각 검색에 더 많은 시간이 걸립니다.
위의 질문과 답변을 통해 "디렉토리에 하위 파일이 10,000개 있으면 특정 파일을 읽는 속도가 크게 느려진다"는 것을 알 수 있습니다. 오른쪽. 디렉토리를 나누는 방법은 무엇입니까?
사실 비교적 간단합니다. 월, 해시 포인트 또는 시간과 해시 조합으로 나눌 수 있습니다. 프로젝트 요구. . .