Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сколько максимально может содержать каталог файлов на сервере?
 
 автор: 1prom   (19.01.2009 в 23:40)   письмо автору
 
 

И имеет ли размер и тип файлов?

Заранее спасибо!

  Ответить  
 
 автор: Николай2357   (19.01.2009 в 23:43)   письмо автору
 
   для: 1prom   (19.01.2009 в 23:40)
 

Спросите у хостера. Максимальный предоставляемый объём памяти у всех разный.

  Ответить  
 
 автор: 1prom   (19.01.2009 в 23:57)   письмо автору
 
   для: Николай2357   (19.01.2009 в 23:43)
 

Нет, объем памяти я то знаю, а количество файлов? Будет ли оно влиять на продуктивность вот такого, например, запроса:

$flink="$file.JPG"; $volume = fileSize($flink);

  Ответить  
 
 автор: Николай2357   (20.01.2009 в 00:04)   письмо автору
 
   для: 1prom   (19.01.2009 в 23:57)
 

Как же оно сможет повлиять, если Вы обращаетесь к одному конкретному файлу. А максимальное количество файлов можно примерно высчитать, разделв предоставляемый объём памяти на средний размер файла.

  Ответить  
 
 автор: 1prom   (20.01.2009 в 00:14)   письмо автору
 
   для: Николай2357   (20.01.2009 в 00:04)
 

нет, Николай, дело не в Объеме.
Я вот хочу выяснить теоретически если Объем каталога "неограничен" - ограничено ли его количество файлов. И как будет вести себя вот такой примерно запрос: при 5 млн. скажем файлов? нагрузка будет на сервер или лучше все разбить на какие-нибудь подкаталоги. Как лучше упорядочить инфу на сервере?????

$i = 0;
$handle = opendir ("mydir/mydir2/");
while($file = readdir($handle))
{
if ($file)
{
$i = $i+1;
}
}

  Ответить  
 
 автор: 1prom   (20.01.2009 в 00:15)   письмо автору
 
   для: Николай2357   (20.01.2009 в 00:04)
 

нет, Николай, дело не в Объеме.
Я вот хочу выяснить теоретически если Объем каталога "неограничен" - ограничено ли его количество файлов. И как будет вести себя вот такой примерно запрос: при 5 млн. скажем файлов? нагрузка будет на сервер или лучше все разбить на какие-нибудь подкаталоги. Как лучше упорядочить инфу на сервере?????

$i = 0;
$handle = opendir ("mydir/mydir2/");
while($file = readdir($handle))
{
if ($file)
{
$i = $i+1;
}
}

  Ответить  
 
 автор: Николай2357   (20.01.2009 в 05:22)   письмо автору
 
   для: 1prom   (20.01.2009 в 00:15)
 

Теоретически объём каталога не ограничен, но есть ограничение по времени работы скрипта. Это ограничение тоже можно снять. Но если Вы будете искать нужный , перебирая по очереди все 5 млн файлов, то ресурс может закончиться при первом же запросе. Разумеется нужно как то систематезировать информацию и оптимизировать поиск. Если требуется держать файлы в одном каталоге, совсем не обязательно перебирать все файлы, а можно разбить на категории, добавляя в имена префиксы к примеру и хранить систематезированную информацию об адресах допустим в базе данных. А искать на основании этой информации, формируя нужный адрес.

  Ответить  
 
 автор: Саня   (20.01.2009 в 10:36)   письмо автору
 
   для: 1prom   (19.01.2009 в 23:40)
 

Возьму для примера NTFS. Когда создаётся пустой файл, это не значит, что он действительно занимает 0 байт. Где-то же хранится имя файла, дата его создания, дата последнего доступа и пр. В NTFS есть специальный раздел — MFT, куда записывается вся эта служебная информация. Обычно размер этого раздела 12% от общего размера жесткого диска. Таким образом если в бесконечном цикле создавать пустые файлы, то наступит момент, когда файлы просто-напросто перестанут создаваться, а размер папки с этими файлами будет 0 байт.
То есть теоретически количество файлов ограничено лишь размером таблицы MFT. В других файловых системах дело обстоит похожим образом.
И не важно сколько файлов в папке, потому что папка — это всего лишь ещё одна запись в MFT, в которой перечислены файлы и другие "папки" в неё вложенные.

Но всё равно не стоит хранить 5 млн. файлов в одной папке. Это просто-напросто неудобно для ручного просмотра и редактирования. Только представьте сколько времени должна занять загрузка списка из 5 млн. файлов, например в FTP-клиенте!

  Ответить  
 
 автор: Trianon   (20.01.2009 в 11:26)   письмо автору
 
   для: Саня   (20.01.2009 в 10:36)
 

>То есть теоретически количество файлов ограничено лишь размером таблицы MFT. В других файловых системах дело обстоит похожим образом.

Это не всегда так.

как минимум потому, что не все системы содержимое каталога хранят в виде дерева поиска.
К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет. Так что поведение приложения может сильно отличаться на разных системах.

Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может?

  Ответить  
 
 автор: Саня   (20.01.2009 в 13:12)   письмо автору
 
   для: Trianon   (20.01.2009 в 11:26)
 

> К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет.
Я разве сказал что все файловые системы по такому принципу работают?

> Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может?
Я разве сказал что он не может меняться?

  Ответить  
 
 автор: Trianon   (20.01.2009 в 14:12)   письмо автору
 
   для: Саня   (20.01.2009 в 13:12)
 

>> К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет.
>Я разве сказал что все файловые системы по такому принципу работают?

Вы этого не сказали. Хотя это, пожалуй единственный фактор, ограничивающий разработчика в том, чтобы создавать в каталоге столько файлов, сколько ему нужно по логике работы приложения.
Зато Вы с потолка прицепили некое теоретическое ограничение, связав его с размером MFT.

Вот я и поинтересовался
>> Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может?
>Я разве сказал что он не может меняться?
Если он может меняться, то вообще неясно почему число файлов нужно ограничивать. Тем более теоретически.

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

  Ответить  
 
 автор: Саня   (20.01.2009 в 14:24)   письмо автору
 
   для: Trianon   (20.01.2009 в 14:12)
 

12% я не с потолка взял. Я руководствовался этой статьёй — http://www.ixbt.com/storage/ntfs.html.

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

  Ответить  
 
 автор: Trianon   (20.01.2009 в 14:36)   письмо автору
 
   для: Саня   (20.01.2009 в 14:24)
 

>>Если он может меняться, то вообще неясно почему число файлов нужно ограничивать.
>Ну раздуется MFT на весь жесткий диск, а дальше-то что?
Не на весь диск, а на весь раздел.
А дальше, видимо, админ примет решение добавить еще дисков в дисковый массив, и увеличить размер раздела.
Только, я полагаю, он сделает это несколько раньше :)

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования