>백엔드 개발 >파이썬 튜토리얼 >대용량의 작은 파일을 저장할 때 효율성을 높이는 핵심 사항에 대한 자세한 설명

대용량의 작은 파일을 저장할 때 효율성을 높이는 핵심 사항에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-10-18 14:37:031439검색

WEB 개발을 하다 보면 파일을 작성하는 상황을 자주 접하게 되는데, 가장 흔한 경우가 이미지 파일을 저장하는 경우입니다. 파일 수가 많지 않으면 효율성에 대해 걱정할 필요가 없습니다. 그러나 사용자 수가 많고 사진 수가 많은 경우 사진 파일을 저장하는 방법은 전체 사진 저장 시스템의 효율성에 직접적인 영향을 미칩니다.

보통 디렉터리에 하위 파일이 10,000개 있으면 특정 파일을 읽는 속도가 크게 떨어진다는 말이 있습니다. 그럼 이 말이 맞는 걸까요, 틀리는 걸까요? 아래를 살펴보겠습니다.

질문: 단일 디렉터리에 너무 많은 하위 파일이 성능에 영향을 미치는 이유는 무엇입니까? 예를 들어 디렉터리에 10,000개의 하위 파일이 있는 경우 특정 파일을 읽는 속도가 느려집니다. 파일 인덱스와 관련이 있나요?

답변: 네, 인덱스와 관련이 있습니다. 10,000은 너무 많지 않습니다. 수백만 명에게서 알 수 있습니다. 그러나 10,000을 초과하지 않는 것이 좋습니다.

질문: 수백만 개의 느린 파일은 파일 시스템 전체와 관련이 있는데, 수백만 개의 파일을 지원하는 유사한 파일 시스템은 아무것도 아닙니다.

답변: 내 말은 수십만 또는 수백만 개의 파일이 하위 디렉터리 없이 디렉터리에 직접 배치될 수 있다는 것입니다. 이때 디렉터리 인덱스를 검색하는 것은 매우 리소스 집약적입니다.

지원되는 수가 제한된 이유는 디렉터리 개체 자체의 크기가 제한되어 있기 때문입니다. 디렉터리는 파일 이름과 파일에 해당하는 inode 번호를 보유하는 컨테이너입니다. 수용할 수 있는 것도 제한되어 있습니다.

특정 파일을 읽는 속도는 영향을 미치지 않습니다. 하지만 찾기가 어렵습니다. 일부 파일 시스템의 인덱싱 메커니즘은 불완전하고 최적화 알고리즘도 없기 때문에 각 검색에 더 많은 시간이 걸립니다.


위의 질문과 답변을 통해 "디렉토리에 하위 파일이 10,000개 있으면 특정 파일을 읽는 속도가 크게 느려진다"는 것을 알 수 있습니다. 오른쪽. 디렉토리를 나누는 방법은 무엇입니까?


사실 비교적 간단합니다. 월, 해시 포인트 또는 시간과 해시 조합으로 나눌 수 있습니다. 프로젝트 요구. . .


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.