Как лучше сделать: много файлов в одной папке или много папок, но мало файлов в них?

123
edka
На сайте с 17.01.2010
Offline
208
#11
Inet-Ark:
Может это папка с фотографиями пользователя, у которого всего четыре фото?

Нет, я проверил многие разные папки, во всех папках не более 4-х фото, Есть и меньше 4-х тоже в некоторых.

Inet-Ark
На сайте с 19.05.2010
Offline
43
#12

Ну может разработчики радикала знают какой-то секрет? :) Лично я не знаю, для чего это сделано.

Но скажу вам так - до 1000 файлов в одну папку можете смело класть.

P.S. У вас какая ОС на сервере?

MMO-игры и все, что с ними связано (http://gama.su/). Мой сайт с партнерскими программами — мало, но все надежные (http://best-pp.ru/).
edka
На сайте с 17.01.2010
Offline
208
#13
P.S. У вас какая ОС на сервере?

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

zexis
На сайте с 09.08.2005
Offline
388
#14

Обычно каждому файлу на сервере соответствует запись в таблице MySQL с описанием файла..

Каждая строка в таблице MySQL имеет числовой первичный ключ.

Поэтому файл можно именовать именно значением числового первичного ключа из таблицы.

Например

83749248.jpg

Путь можно делать таким.

/837/492/83749248.jpg

То есть в каждой папке не более 1000 файлов

Можно еще к концу файла дописывать секретный код

/837/492/837492948qisjw.jpg

Секретный код хранить в базе данных.

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

Inet-Ark
На сайте с 19.05.2010
Offline
43
#15
edka:
Пока только собираю информацию, чтобы сделать проект, файлы будут на поддомене с тарифом для статики, а сам сайт на виртуальном хостинге, т.е. сервера у меня нет :)

Ну, в общем, если у вас планируется большое количество посетителей и большое количество файлов, то!, если вы будете брать VDS или dedic - вам подйдет FreeBSD (может и другая ОС, но это я незнаю). Потому, что у FreeBSD есть очень хорошая система кеширования имен файлов в директории. То есть, если в какой-то директории у вас много файлов, то поиск (запрос) будет по хеш таблице, а не по дереву каталогов или файлов. Ну и плюс nginx на сервере для изображений. И кешировать их на стороне клиента. Последние два предложения конечно не по теме, но так для информации. :)

AU
На сайте с 03.09.2009
Offline
88
#16

А почему бы не использовать базу данных, если файлов очень много?

Unix в вопросах и ответах https://unixhow.com (https://unixhow.com)
Andreyka
На сайте с 19.02.2005
Offline
822
#17

В базе лежат пути к файлам

Не стоит плодить сущности без необходимости
Zaqwr
На сайте с 08.08.2007
Offline
111
#18
adm.unix:
А почему бы не использовать базу данных, если файлов очень много?

надеюсь вы в БД не хранить файлы собираетесь?

Администрирование, Linux, Cisco, Juniper
zexis
На сайте с 09.08.2005
Offline
388
#19
adm.unix:
А почему бы не использовать базу данных, если файлов очень много?

В базе данных хранить статические файлы не нужно.

Так как статические файлы отдаются nginx без участия апаче, php и mysql.

M
На сайте с 16.09.2009
Offline
278
#20
Inet-Ark:
Ну, в общем, если у вас планируется большое количество посетителей и большое количество файлов, то!, если вы будете брать VDS или dedic - вам подйдет FreeBSD (может и другая ОС, но это я незнаю). Потому, что у FreeBSD есть очень хорошая система кеширования имен файлов в директории. То есть, если в какой-то директории у вас много файлов, то поиск (запрос) будет по хеш таблице, а не по дереву каталогов или файлов.

Как и в любой современной файловой системе unix, наверно. Начиная с самой распространенной ext3 в linux (dir_index опция). У *BSD никаких достоинств нет в этом отношении. Несколько миллионов файлов должно проглотить без труда в ext3 - бенчмарки можно в сети поискать...

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий