
250,000개의 사전 항목이 동일한 수의 파일로 나누어져 있다고 가정해 보겠습니다. 각 파일은 표제를 포함하는 줄로 시작됩니다. 합쳐서 2GB입니다. 쉽고 빠르게 단어를 찾을 수 있도록 정보를 정리하는 가장 좋은 방법은 무엇입니까? 하위 디렉터리를 abc 등으로 만들어야 합니까? 여러 파일을 더 큰 파일로 결합해야 합니까?
답변1
무엇을 하려는지, 데이터가 무엇인지에 대해서는 많이 언급하지 않으시지만 제 생각은 다음과 같습니다. 즉, 모든 단어가 고유하다고 가정합니다. 디스크 공간의 효율적인 사용에 대해 걱정하지 않는다고 말씀하셨습니다.
Ext4 파일 시스템. 각 단어를 하나의 큰 디렉토리에 별도의 파일로 저장합니다. 파일 시스템이 당신을 위해 파일을 찾도록 하세요 - 당신에게 매우 쉽고(이름으로 원하는 파일을 열면 됩니다) 파일 시스템은 파일을 찾는 효율적인 방법을 가지고 있습니다.
파일 시스템에 충분한 여유 inode가 있는지 확인해야 합니다. 즉, 파일당 하나이므로 250,000개의 여유 inode가 필요합니다 du -i
.
ls
파일을 열거해야 하는 작업이나 기타 작업(예: 파일 브라우저에서 파일 열기)을 피하면 성능이 좋아질 것입니다.
답변2
Python 사전과 같은 사전인 경우 JSON으로 변환하고 MongoDB 또는 일부 NoSQL 구현에 저장하고 데이터베이스에서 액세스합니다.