Как вы думаете, это хорошая идея, чтобы сохранить миллиарды изображений в базу данных? - PullRequest
7 голосов
/ 31 июля 2009

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

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

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

Что вы думаете об этом.

Ответы [ 4 ]

18 голосов
/ 31 июля 2009

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

2 голосов
/ 31 июля 2009

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

1 голос
/ 29 июня 2012

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

0 голосов
/ 31 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...