LINUX.ORG.RU

Ответ на: комментарий от vkg2

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

SevikL ★★★★★
()

Всё зависит от объёмов и частоты использования. Но вполне нормально хранить изображения на отдельном файловом(-ых) сервере(-ах), а в БД только URL-ы

AlexVR ★★★★★
()
Ответ на: комментарий от SevikL

Ты упорот или «много» у тебя - меньше миллиона.

ТСу: Только ФС.

anonymous
()
Ответ на: комментарий от anonymous

А что не HDFS сразу?

Не хватает данных: нужна ли репликация, какой объем файлов в целом и по отдельности, какие ограничения по отклику. Судя по первому посту ТСу хватит и обычной ФС.

anonymous
()
Ответ на: комментарий от SevikL

В БД хранить контент файлов - маразм в большинстве случаев (хотя бывают адекватные причины) Если файлы храняться только для отдачи конечному пользователю - ФС. Если их очень много, создаем дерево директорий. В БД хранить линки (или инфу из которой можно генерить линки) на них

solarys
()

Только ФС. В базе - только линки.

pi11 ★★★★★
()
Ответ на: комментарий от KRoN73

кстати, а при хранении большого числа файлов (тоже картинок) на ext4 в одной директории стоит ли ждать проблем? поделитесь опытом вообще как лучше организовать

xtraeft ★★☆☆
()
Ответ на: комментарий от xorik

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

AGUtilities ★★★
()

Где же тут холивар, если очевидно, что ФС.

VirRaa ★★★
()
Ответ на: комментарий от xtraeft

кстати, а при хранении большого числа файлов (тоже картинок) на ext4 в одной директории стоит ли ждать проблем

Стоит.

VirRaa ★★★
()
Ответ на: комментарий от xtraeft

можно подробнее?

При большом количестве файлов в директории у тебя начнётся дикий тупняк. Большое количество - over 20k файлов. В связи с этим лучше генерировать поддиректории, на основе, например, user_id и прочих связанных с файлом ключей.

VirRaa ★★★
()
Ответ на: комментарий от AlexVR

как хранить превьюшки и как их генерить.

суффикс/префикс + mogrify -resize 32x32! :3

minakov ★★★★★
()
Ответ на: комментарий от AGUtilities

Ну ты же посмотришь на сайте, прочитаешь Getting Started, потом посоветуешь на ЛОРе. Я хорошо напишу странички, те боись.

vertexua ★★★★★
()

А вот если похрен на производительность, то наверное в БД проще всего? Вопрос ко всем причатсным. Для нагруженных проектов понятно - хранить в ФС, отдавать nginx-ом.

dizza ★★★★★
()
Ответ на: комментарий от dizza

А вот если похрен на производительность, то наверное в БД проще всего?

На БД ты линк прямой не дашь. Нужно делать обёртку, которая достанет из БД эту картинку, и отдаст ещё нужным типом.

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

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

dizza ★★★★★
()
Ответ на: комментарий от minakov

Я вообще на дропбоксе храню, потому что хостинг всего 100MB

Превысишь чуть-чуть норму трафика и прикроют.

resurtm ★★★
()
Ответ на: комментарий от AGUtilities

что ты посмотрел? Ты запусти монго, а потом когда у тебя объем под 10 Т будет скажи как оно работает.

xpahos ★★★★★
()

В линупсе есть XFS и sendfile если чо.

xpahos ★★★★★
()
Ответ на: комментарий от resurtm

пока альтернативы кроме локалхоста с 1Mb/s и дропбокса не вижу, кроме смены хостинга на более дорогой, но он не окупится прямо сразу, вот и выкручиваюсь

minakov ★★★★★
()
Ответ на: комментарий от xorik

xorik

Хранить файлы в базе — это диагноз

...или Шиндошс...

drBatty ★★
()
Ответ на: комментарий от VirRaa

VirRaa

При большом количестве файлов в директории у тебя начнётся дикий тупняк. Большое количество - over 20k файлов.

шиндошс сервер? у меня Over1M, тупняков не вижу (конечно при редкой вставке/удалении, при частой 100К макс)

drBatty ★★
()
Ответ на: комментарий от psp13

psp13

А если веб приложение на нескольких машинах тогда NFS или что лучше?

есть какие-то распределённые ФС. погуглите.

drBatty ★★
()

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

LinuxUser ★★★
()

у нас че, какой-то сервер научился напрямую стримить из БД? Или вытаскивание через Ж с соответсвующими застратами на IPC?

namezys ★★★★
()

база данных vs файловая система

Файловая система есть специализированная БД для блобов, с ограниченными возможностями: поиск только по явно заданному имени, малый набор хранимых данных(если не считать xattrs), и почти ничего сверх этого. Если тебе достаточно - пользуйся, нет - бери более навороченную.

DonkeyHot ★★★★★
()
Ответ на: комментарий от drBatty

а с чего на 20к тупит тогда?

Может именно на 20к и не тупит. Хотя я сомневаюсь, что в директории с таким кол-вом файлов можно уютно выполнить ls иди rm -rf *. В связи с этим, считаю что доводить количество файлов до over 20K дурной тон, если можно разнести их по поддиректориям.

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

При большом количестве файлов в директории у тебя начнётся дикий тупняк. Большое количество - over 20k файлов. В связи с этим лучше генерировать поддиректории, на основе, например, user_id и прочих связанных с файлом ключей.

Можно извратиться и так :)

http://api.yandex.ru/fotki/doc/concepts/About.xml

curl http://api-fotki.yandex.ru/api/users/alekna/photos/
AlexVR ★★★★★
()
Ответ на: комментарий от VirRaa

похоже ls тупит из-за того, что оно делает stat для каждого файла, чтобы получить инфу (особенно если ls это алиас на ls --color). Простое получение содержимого файла по имени не должно тупить...

chicane
()
Ответ на: комментарий от chicane

похоже ls тупит из-за того, что оно делает stat для каждого файла, чтобы получить инфу (особенно если ls это алиас на ls --color). Простое получение содержимого файла по имени не должно тупить...

И что мне легче, оставить алиас, или же не держать >20К файлов в директории?

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

Может именно на 20к и не тупит. Хотя я сомневаюсь, что в директории с таким кол-вом файлов можно уютно выполнить ls иди rm -rf *. В связи с этим, считаю что доводить количество файлов до over 20K дурной тон, если можно разнести их по поддиректориям.

+1. Всё равно чаще в месте с изображениями хранится и мета информация, которую надо хранить в БД. Следовательно, есть ID/UUID и итоговый URL файла может быть http://img01.myserv.org/XX/YY/ZZZZZZZZZZZZYYXX/myPhoto.jpg

AlexVR ★★★★★
()
Ответ на: комментарий от VirRaa

а зачем делать ls в папке с >20к файлами? ума не приложу если честно. Все выше написал только чтобы пояснить почему происходят тупняки.

лично у меня файлы храняться без разделения по подкаталогам (где то около 50к), сделано так, чтобы дополнительную логику по этой части не вести, т.к. все равно в будущем придется это переносить на какую нибудь распределенную фс...

chicane
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.