| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Большое количество файлов в папке |
| Автор: dark_religion 26.8.2009, 14:10 |
| Есть 100 тыс картинок. Как их лучше разместить по папкам? И как это влияет на производительность. Чем отличается поиск файла в папке от поиска папки в папке. Если разместить каждый файл в отдельной папке будет быстрее? |
| Автор: Ипатьев 26.8.2009, 14:33 |
| 1. зайти на любой сайт с картинками и посмотреть 2. ничем 3. нет |
| Автор: dark_religion 26.8.2009, 15:27 |
| Кто-то более побробно может рассказать? Ато люди пишут, а есть ли у них какое-то понимание не понятно, когда без объяснений, сложно сделать вывод. И вообще ипатьев....думай перед тем как что-то писать. Если нет разницы между поиском папок и поиском файлов, то какой смысл тогда вообще групировать файлы по каким -то папкам. Даже первокласник знает, что от перестановки слогаемых сума не меняетца.... Ты сочиняешь ужас....бррррррррррррррррррр |
| Автор: IZ@TOP 26.8.2009, 15:56 |
| dark_religion, существует много разных вариантов. Однако ничего предлагать не буду, поскольку у вас в задаче есть такой пункт, как поиск в файловой системе. Если бы Вы описали свою проблему несколько конкретнее, мы смогли бы предложить Вам какой-нибудь вариант. Обычно файлы хранят в структуре вроде: 1. /storage/yyyy/mm/dd 2. /storage/u/us/user 3. /storage/m/md/md5ofidpart А поиск обычно производят утилитой find. Поиск папки и файла в папке отличаются незначительно. А возможно вовсе не отличаются. |
| Автор: NewDima 26.8.2009, 16:23 |
| dark_religion, зря на Ипатьева топишь ;) так и есть, с точки зрения операционной системы - разници нет. А вот с точки зрения скрипта, который ищет - есть. Если будешь структурировать все, как сказал IZ@TOP, то выбор поиска будет быстро уменьшаться в разы. Главное грамотно структурировать. А вообще, действительно, опиши задачу и условия подробнее |
| Автор: dark_religion 26.8.2009, 18:26 |
| Я понял, ну вообщем) ничего на самом деле искать ненадо скриптом) суть в том что есть в папке картинки. и в базе есть путь к этим картинкам. Когда отображается страница, в ней в виде хтмл в конечном счете указаны пути этих картинок. Нью дима, так я думал, что файлы ищутся средствами операционной системы. Еще я вначале видимо неправильно сформулировал задачу. Искать ничего ненадо. Операционная система ищет. Вопрос в том, как сделать, что бы ей было удобнее искать. |
| Автор: Pfailed 26.8.2009, 18:57 |
| В некоторых файловых системах (FAT?) количество файлов в одной папке сильно ограничено. |
| Автор: NewDima 26.8.2009, 19:39 | ||
ага, а еще апач на win 3.1 поставим |
| Автор: motorway 26.8.2009, 20:51 |
| Разница может быть в том, что когда заходишь по ftp, если в папке больше нескольких тысяч файлов, будет очень тормозить. Кроме этого, на хостинге бывает лимит по кол-ву файлов |
| Автор: dark_religion 26.8.2009, 21:10 |
| Так кто-то знает или нет, пока то что я понял, это если нужно, искать какие-то файлы, то если структурированные папки, то исходя из логики нужно посматривать меньшее количество папок и соответственно файлов. А по поводу оптимизации системы не увидел ни одного ответа. Действительно на счет ограничения по файлам сейчас это роли не играет. Вопрос в другом, что если содержимое папки выводится 5 секунд, то что будет если пользователей будет больше 100! |
| Автор: Dima50 26.8.2009, 21:47 |
| Ты как файлы искать хочешь? По маске имени: *text.txt Зри в то как устроено хранение файлов в файловой системе. Если файловая система формирует хеш таблицу где ключи это имена файлов, а значения местоположения их на диске. То не должно быть смысла распихивать файлы по директориям для увеличения скорости поиска. И писать спец скрипт для выуживания файла по маске. Это сделали за тебя. Если файловая система не строит хешей или деревьев от имен файлов и работает прямой перебор. То конечно лучше распихать файлы как IZ@TOP рассказывал. И написать скрипт формирующий путь к директории из имени файла или даты там файла. Трудоемкость поиска уменьшиться в разы. ИХМО лучше конечно рассредоточить файлы по директориям. motorway и Pfailed аргументировали почему. Потом если ты четко знаешь имя файла, думаю не влияет на скорость его вызова количество файлов в директории лежащих вместе с ним. Если почитаешь потом расскажи как файлы хранятся. |
| Автор: NetJunky 27.8.2009, 00:24 |
| MoLeX, мне твоя идея очень понравилась. У неё есть потенциал и такая реализация делает не столько даже быстрее работу, сколько организованнее. Таким макаром можно хорошо организовать ЧПУ для картинок. |
| Автор: dark_religion 27.8.2009, 02:25 |
| Очень много, читать надо, что бы понять, как файловая система находит файлы. Я по этому и разместил тему в экспертах, что бы кто-то ответил. Объясните кто-то плиз. Разве сейчас используются системы которые не хешируют файлы? |
| Автор: MoLeX 27.8.2009, 05:31 |
| NetJunky, такой способ не новый. его во всю использую некоторые гос. учереждения - отслеживать удобнее |
| Автор: IZ@TOP 27.8.2009, 12:10 |
| dark_religion, я вас не понимаю. Я вам предложил варианты, которые используются на большинстве хостингов картинок. Например, второй вариант, который я привел, используется на проекте http://photofile.ru. Что такое ваши 100 тыс картинок по сравнению с более чем сотней серверов забитых под завязку, от 500Гб до полутора Тб объемом? Может быть, вас интересует вопрос того, насколько оптимально считывание определенного файла веб-вервером (nginx-ом например), когда в той же директории находятся еще 1000 файлов? Поверьте, разницы в том, один файл лежит в директории или их миллион - нет. Разумеется, в каждой файловой системе есть свои ограничения на количество элементов в папке (дежавю.. где-то я здесь это уже встречал), но и доводить их количество до абсурда нет необходимости. |
| Автор: Ипатьев 27.8.2009, 12:27 | ||
интересно, зачем картинкам чпу...
Очень много надо читать, поэтому я спросил, чтобы мне объяснили в двух словах. иногда форум очень грустно читать |
| Автор: MoLeX 27.8.2009, 14:37 |
Так не читай, это дело сугубо добровольное. |
| Автор: IZ@TOP 27.8.2009, 14:58 |
| Я предлагаю смотреть позитивно на вещи: лично я очень хорошо повеселился с этой темы, чего и всем советую в подобных случаях |
| Автор: dark_religion 27.8.2009, 15:56 | ||
Ну вот, я об этом и спрашивал, есть ли разница для системы как расположены файлы в папках. ОБ этом писал в принципе ипальев, просто ни ты ни он не объяснили) почему нет разницы сколько файлов в папке. По этому, на мнение одного человека не хотелось полагаться.)) Но теперь вас уже больше) Придется поверить) |
| Автор: IZ@TOP 27.8.2009, 16:02 |
| dark_religion, я не спец по файловым системам. Если ты хочешь узнать именно по какой причине - читай документация по файловой системе которую собираешься использовать. Вообще, я о таких вещах никогда не задумывался. Вот, например, бэкап файловой помойки в 1.5тб - да, вопрос интересный. А скорость доступа к файлу напрямую - что-то из разряда низкоуровневых систем. |