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

Я лично хранил бы большие данные за пределами базы данных.

Профессионалы: Хранилища все в одном, легкий доступ к файлам данных, легким Недостаткам baskup: производительность базы данных Уменьшений, много расщеплений страницы, возможного повреждения базы данных

10
задан resopollution 9 July 2009 в 17:39
поделиться

5 ответов

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

10
ответ дан 3 December 2019 в 16:10
поделиться

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

3
ответ дан 3 December 2019 в 16:10
поделиться

Файловая система. Нет конкурса. Когда вы сохраняете в базе данных, данные должны проходить через намного больше уровней.

Редактировать при кэшировании: Если вы хотите кэшировать файл, пока пользователь загружает его, чтобы гарантировать, что операция завершится как можно скорее, выгрузите его прямо на диск (то есть в файловую систему) почти так же быстро, как это возможно. Если файлы не слишком большие и у вас не слишком много одновременных пользователей, вы можете «кэшировать» файл в памяти, вернуться к пользователю, а затем сохранить на диск. Честно говоря, я бы не стал беспокоиться.

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

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

9
ответ дан 3 December 2019 в 16:10
поделиться

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

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

go FS. нет конкурса.

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

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

1
ответ дан 3 December 2019 в 16:10
поделиться
Другие вопросы по тегам:

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