Может кто объяснить или ткнуть носом в ссылку: почему всегда пугают - "Не надо хранить бинарные данные в базе данных!". Почему не надо? Говорят про ужасные нагрузки на базу данных, на то, что она для этого не предназначена... Какой может быть вред от простой таблицы, которая имеет вид идентификатор/бинарные данные с индексом на идентификатор?
Понимаю, что реляционные базы данных создавались не для этого, но объясните, пожалуйста, кто знает - какие могут быть проблемы и почему так лучше не делать?Заранее спасибо.
Ничего фантастически плохого в хранении двоичных данных в БД нету.
Не так мало приложений, в которых по структурированному ключу необходимо
получить доступ к потоку неинтерпретируемых данных. Причём реляционный
движок обеспечивает высокую гибкость поиска.Естественно, можно на каждую такую запись генерировать идентификатор и
хранить данные, скажем, в файлике. Совсем не факт, что такое решение
будет чем-то лучше применения BLOB-полей.Конкретно с PostgreSQL могут (теоретически) быть проблемы с
производительностью при большом числе записей с BLOB-полями. Последний
раз, когда я данным вопросом интересовался, у pgsql был весьма тупой
модуль, отвечающий за хранение данных, который очень не любил поля
плавающей длины. По слухам, сейчас проблема потихоньку устраняется.
Спасибо за грамотный ответ.
А если использовать lo_* функции?
Привет,Простой вопрос: базы данных дла чего созданы? Простой ответ: для поиска. Истакь в бинарных объектах вы не в состоянии, ерго, незачем хранить бинарные данные в SQL. Все остальные соображния вторичны - нагрузка болюше, индексы, потребление памяти (SQL енджины прожорливы на память, чтоб держать всегда индексы "под рукой") и т.д.
>Простой вопрос: базы данных дла чего созданы? Простой ответ: для поиска. Истакь
>в бинарных объектах вы не в состоянии, ерго, незачем хранить бинарные
>данные в SQL. Все остальные соображния вторичны - нагрузка болюше, индексы,
>потребление памяти (SQL енджины прожорливы на память, чтоб держать всегда индексы
>"под рукой") и т.д.Затем чтобы всё было в одной базе (не на файловой системе, потому что фрагментация - раз, и необходимость связи бинарных и текстовых данных - два). Кроме того (мне) нужен не поиск, а выборки - а это не одно и тоже.
Хотя общая мысль - интересная...