|
|
|
| И имеет ли размер и тип файлов?
Заранее спасибо! | |
|
|
|
|
|
|
|
для: 1prom
(19.01.2009 в 23:40)
| | Спросите у хостера. Максимальный предоставляемый объём памяти у всех разный. | |
|
|
|
|
|
|
|
для: Николай2357
(19.01.2009 в 23:43)
| | Нет, объем памяти я то знаю, а количество файлов? Будет ли оно влиять на продуктивность вот такого, например, запроса:
$flink="$file.JPG"; $volume = fileSize($flink); | |
|
|
|
|
|
|
|
для: 1prom
(19.01.2009 в 23:57)
| | Как же оно сможет повлиять, если Вы обращаетесь к одному конкретному файлу. А максимальное количество файлов можно примерно высчитать, разделв предоставляемый объём памяти на средний размер файла. | |
|
|
|
|
|
|
|
для: Николай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 в 00:04)
| | нет, Николай, дело не в Объеме.
Я вот хочу выяснить теоретически если Объем каталога "неограничен" - ограничено ли его количество файлов. И как будет вести себя вот такой примерно запрос: при 5 млн. скажем файлов? нагрузка будет на сервер или лучше все разбить на какие-нибудь подкаталоги. Как лучше упорядочить инфу на сервере?????
$i = 0;
$handle = opendir ("mydir/mydir2/");
while($file = readdir($handle))
{
if ($file)
{
$i = $i+1;
}
} | |
|
|
|
|
|
|
|
для: 1prom
(20.01.2009 в 00:15)
| | Теоретически объём каталога не ограничен, но есть ограничение по времени работы скрипта. Это ограничение тоже можно снять. Но если Вы будете искать нужный , перебирая по очереди все 5 млн файлов, то ресурс может закончиться при первом же запросе. Разумеется нужно как то систематезировать информацию и оптимизировать поиск. Если требуется держать файлы в одном каталоге, совсем не обязательно перебирать все файлы, а можно разбить на категории, добавляя в имена префиксы к примеру и хранить систематезированную информацию об адресах допустим в базе данных. А искать на основании этой информации, формируя нужный адрес. | |
|
|
|
|
|
|
|
для: 1prom
(19.01.2009 в 23:40)
| | Возьму для примера NTFS. Когда создаётся пустой файл, это не значит, что он действительно занимает 0 байт. Где-то же хранится имя файла, дата его создания, дата последнего доступа и пр. В NTFS есть специальный раздел — MFT, куда записывается вся эта служебная информация. Обычно размер этого раздела 12% от общего размера жесткого диска. Таким образом если в бесконечном цикле создавать пустые файлы, то наступит момент, когда файлы просто-напросто перестанут создаваться, а размер папки с этими файлами будет 0 байт.
То есть теоретически количество файлов ограничено лишь размером таблицы MFT. В других файловых системах дело обстоит похожим образом.
И не важно сколько файлов в папке, потому что папка — это всего лишь ещё одна запись в MFT, в которой перечислены файлы и другие "папки" в неё вложенные.
Но всё равно не стоит хранить 5 млн. файлов в одной папке. Это просто-напросто неудобно для ручного просмотра и редактирования. Только представьте сколько времени должна занять загрузка списка из 5 млн. файлов, например в FTP-клиенте! | |
|
|
|
|
|
|
|
для: Саня
(20.01.2009 в 10:36)
| | >То есть теоретически количество файлов ограничено лишь размером таблицы MFT. В других файловых системах дело обстоит похожим образом.
Это не всегда так.
как минимум потому, что не все системы содержимое каталога хранят в виде дерева поиска.
К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет. Так что поведение приложения может сильно отличаться на разных системах.
Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может? | |
|
|
|
|
|
|
|
для: Trianon
(20.01.2009 в 11:26)
| | > К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет.
Я разве сказал что все файловые системы по такому принципу работают?
> Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может?
Я разве сказал что он не может меняться? | |
|
|
|
|
|
|
|
для: Саня
(20.01.2009 в 13:12)
| | >> К примеру, NTFS, ReiserFS , JFS - хранят, а ext2, ext3 - нет.
>Я разве сказал что все файловые системы по такому принципу работают?
Вы этого не сказали. Хотя это, пожалуй единственный фактор, ограничивающий разработчика в том, чтобы создавать в каталоге столько файлов, сколько ему нужно по логике работы приложения.
Зато Вы с потолка прицепили некое теоретическое ограничение, связав его с размером MFT.
Вот я и поинтересовался
>> Кстати, откуда информация о том, что размер MFT фиксирован, и меняться не может?
>Я разве сказал что он не может меняться?
Если он может меняться, то вообще неясно почему число файлов нужно ограничивать. Тем более теоретически.
Может он меняться или не может - на ограничение по числу файлов, хранимых в пределах одного каталога это не влияет. MFT описывает вообще все файлы в разделе, а не только хранимые в одном каталоге. | |
|
|
|
|
|
|
|
для: Trianon
(20.01.2009 в 14:12)
| | 12% я не с потолка взял. Я руководствовался этой статьёй — http://www.ixbt.com/storage/ntfs.html.
>>Я разве сказал что он не может меняться?
>Если он может меняться, то вообще неясно почему число файлов нужно ограничивать.
Ну раздуется MFT на весь жесткий диск, а дальше-то что? | |
|
|
|
|
|
|
|
для: Саня
(20.01.2009 в 14:24)
| | >>Если он может меняться, то вообще неясно почему число файлов нужно ограничивать.
>Ну раздуется MFT на весь жесткий диск, а дальше-то что?
Не на весь диск, а на весь раздел.
А дальше, видимо, админ примет решение добавить еще дисков в дисковый массив, и увеличить размер раздела.
Только, я полагаю, он сделает это несколько раньше :)
Приложение же наверняка будет ограничено квотой выделения дискового пространства на пользователя, от имени которого работает. | |
|
|
|