Големият брой директории влияят ли отрицателно на производителността?

Възнамерявам да използвам файлове за съхраняване на данни като вид кеш за файлове, генерирани от PHP, за да избегна необходимостта да ги генерирам повторно всеки път, когато се зареждат (съдържанието им се променя само веднъж на ден).

Едно нещо, което съм забелязал в миналото е, че ако една директория има голям брой файлове вътре, достигащи хиляди, ще отнеме много време на FTP програма да зареди съдържанието й, понякога дори да срине компютъра, който се опитва да ги зареди . Така че разглеждам дървовидна система, където всеки файл се съхранява в подпапка въз основа на неговия идентификатор. Така например файл с ID 123456 ще бъде съхранен като 12/34/56.html. По този начин всяка папка ще има най-много 100 елемента (освен в случай, че има милиони файлове, но това е изключително малко вероятно да се случи).

Това добра идея ли е, пресилено ли е или не е необходимо? Въпросът по същество се свежда до: "Кой е най-добрият начин за организиране на голям брой файлове?"


person Niet the Dark Absol    schedule 02.06.2012    source източник


Отговори (1)


1) Отговорът зависи от

  • ОС (напр. Linux срещу Windows) и

  • файлова система (напр. ext3 срещу NTFS).

2) Имайте предвид, че когато произволно създавате нова поддиректория, вие използвате повече inodes

3) Linux обикновено се справя с "много файлове/директория" по-добре от Windows

4) Няколко допълнителни връзки (ако приемем, че сте на Linux):

person paulsm4    schedule 02.06.2012
comment
Е, разработвам на машина с Windows, но самият сайт работи на Linux. Често архивирам файловете на сървъра на моя компютър, така че каквото и решение да избера, трябва да е мултиплатформено. Предполагам, че основният проблем са inodes, тъй като не знам абсолютно нищо за тях! - person Niet the Dark Absol; 03.06.2012