База данных хранилища для изображений - PullRequest
2 голосов
/ 25 апреля 2011

Мое приложение использует базу данных для (среди прочего) хранения отсканированных документов. Обычно это изображения в формате JPEG, и в основном это просто текст.

Я знаю, что рекомендуется использовать файлы для изображений и ссылаться на них из базы данных, но их проще получить таким образом. Приложение использует один сервер и несколько клиентов, и хранение файлов может занять много места на жестком диске (накладные расходы, распределение секторов и т. Д.) И потребовать использования общих папок, подключенных дисков и прочего. Медленно и менее безопасно.

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

Вопрос: есть ли лучший способ?

Сами данные являются однократными при записи и обычно не удаляются (но теоретически возможны), так что что-то, что медленно (в разумных пределах) хранится, неизменяемо и быстро доступно, было бы идеально.

Я думаю о создании собственного механизма хранения, который бы включал сжатие, индексирование и кэширование, которое допускает только два столбца (bigint, blob) на таблицу. Что-то подобное уже существует?

1 Ответ

0 голосов
/ 25 апреля 2011

В MSSQL 2005 введена потоковая передача файлов, которая позволяет хранить указатели в базе данных, но не допускать больших двоичных объектов в базе данных и в каталоге (как и должно быть).Важно то, что при резервном копировании базы данных резервные копии также создаются.Лучшее из обоих миров.Доступ к каталогам также ограничен, обычно только сам SQL получает доступ.

Сохраняйте изображения в виде файлов, сохраняйте указатели в базе данных.

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