Хранение изображений: DB или файловая система -

Простой удар:

$ cat numbers.txt 
1
2
3
4
5
6
7
8
9
10
$ sum=0; while read num; do ((sum += num)); done < numbers.txt; echo $sum
55
15
задан mickthompson 5 August 2009 в 16:04
поделиться

7 ответов

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

Оставьте кеширование файлов ОС и / или вашему обратному прокси - они у меня получится лучше.

22
ответ дан 1 December 2019 в 00:02
поделиться

Большинство крупных сайтов используют файловую систему.

См. Хранить изображения в виде файлов или в базе данных для веб-приложения?

11
ответ дан 1 December 2019 в 00:02
поделиться

Некоторые другие причины для хранения изображений в файловой системе:

  • Серверы изображений могут работать, даже когда база данных занята или не работает.
  • Файловые системы предназначены для хранения файлов и весьма эффективны в этом.
  • Выгрузка данных в вашу базу данных означает более медленное резервное копирование и другие операции.
  • Для обслуживания образа не требуется кодирование на стороне сервера, просто старый добрый IIS / Apache.
  • Вы можете масштабироваться быстрее с помощью очень дешевых веб-серверов или, возможно, до CDN.
  • Вы можете выполнять связанную работу (создание эскизов и т. Д.) Без использования базы данных.
  • Ваш сервер базы данных может хранить больше " реальные "данные таблицы в памяти, откуда вы получаете скорость вашей базы данных для запросов. Если он использует свою драгоценную память для хранения файлов изображений в кеше, это не Вряд ли можно купить что-нибудь по скорости, вместо того, чтобы иметь больше индекса фотографий в памяти.
15
ответ дан 1 December 2019 в 00:02
поделиться

При работе с двоичными объектами придерживайтесь подхода к архитектуре, ориентированного на документы, и не храните документы, такие как PDF-файлы и изображения, в базе данных, вам в конечном итоге придется реорганизовать его, когда вы начнете видеть все виды проблем с производительностью вашей базы данных. Просто сохраните файл в файловой системе и укажите путь в таблице своей базы данных. Также существует физическое ограничение на размер типа данных, который вы будете использовать для сериализации и сохранения в базе данных. Просто сохраните его в файловой системе и получите к нему доступ.

5
ответ дан 1 December 2019 в 00:02
поделиться

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

4
ответ дан 1 December 2019 в 00:02
поделиться

Какую базу данных вы используете? MS SQL Server 2008 предоставляет хранилище FILESTREAM

, позволяющее хранить данные больших двоичных объектов и осуществлять эффективный доступ к ним, используя комбинацию SQL Server 2008 и файловой системы NTFS. В нем рассматриваются варианты хранения больших двоичных объектов, настройка Windows и SQL Server для использования данных FILESTREAM, рекомендации по объединению FILESTREAM с другими функциями, а также детали реализации, такие как разбиение на разделы и производительность.

подробности

3
ответ дан 1 December 2019 в 00:02
поделиться

Мы используем FileNet, сервер, оптимизированный для создания образов. Это очень дорого. Более дешевым решением является использование файлового сервера.

Пожалуйста, не рассматривайте возможность хранения больших файлов на сервере базы данных.

Как уже упоминалось другими,

0
ответ дан 1 December 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: