число файлов в каталоге

valerchik

Guest
число файлов в каталоге

Вот такой вот вопрос....я храню картинки в каталоге....сколько максимум файлов туда можно запихнуть так чтоб не тупило......
 

sergey222

Guest
у меня уже 2000 накопилось и все нормально
 

clevel

Новичок
как я помню, все это зависит от операционки... и файловой системы...
 

Phoenix

Guest
а если стоит RedHat 7.2 , то сколько максимально можно иметь фаилов в одной папке?
 

slach

Новичок
у меня 30 тысяч... само по себе извлечение файла по полному пути... не шибко быстро, но терпимо...
есть необходимость разбивать на подкаталоги
групповые операции типа удалить все файлы по условию... медленно...
 

deek

Новичок
если заранее известно, что файлов в каталоге будет очень много ( < 1.000.000), можно поступить так:

объеденить маленькие файлы в несколько больших файлов, и держать файл индекса (в каком из больших файлов на каком смещении лежит та или иная картинка, и сколько она занимает).

затем пишутся 2 простенькие cgi на С:
- первая достает из больших файлов маленькие картинки в stdout
- вторая "пакует" маленькие файлы в большие и перестраивает индексы.

основной затык - это загрузка cgi в память - это будет давать некоторые тормоза. зато, если сделать первую cgi в виде модуля к апачу, все будет просто летать.

я таким способом хранил около 300.000 картинок, скорость отдачи одной картинки была медленнее где-то на 5-7% по сравнению с plain file. зато про ограничение на количество файлов в каталоге можно забыть.

конечно, описанный способ нужно применять для статичных наборов картинок. я применял для географических карт - там с разделением на подкаталоги не пройдет.

а для простого набора картинок без всякой зависимости друг от друга, конечно, можно и на подкаталоги разбивать.
 

Phoenix

Guest
2 deek : а что ты скажешь, если у меня виртуальный хостинг? :)
мне даже ssh не дают
 

deek

Новичок
ну, тогда сделай то же самое, с индексом, только вместо больших файлов, состоящих из кучи картинок, создай подкаталоги.

тогда в индексном файле будет храниться соответствие имени файла тому каталогу, в котором этот файл физически находится.

если картинки к тебе аплоадят, то создай один временный каталог, и, если путь к картинке не найден в индексном файле, то бери ее из этого каталога.

а в кроне по ночам переноси файлы из этого временного каталога в свое дерево каталогов, и перестраивай индексы.

сколько файлов можно максимально хранить в подкаталоге без тормозов, установи опытным путем.
скажем, сделай в каталоге 1000 файлов, с именами от "1" до "1000", потом создай в скрипте десять случайных имен файлов и попробуй сделать на каждом fopen. запиши на бумажке время открытия одного файла. потом увеличь количество файлов, и т.д.
в каком-то месте наступит предел файловой системы, ты это заметишь по резкому увеличению времени открытия файла.
в конце концов, построй графики в Excel, и посмотри наглядно.
 

sokol

Zavolga.Net
А чем даза банных не устраивает?
Phoenix, это тот Phoenix о котором я думаю или нет?
 
Сверху