powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хранение картинов в базе.
15 сообщений из 15, страница 1 из 1
Хранение картинов в базе.
    #38520044
Дядя Ваня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Столкнулся с такой проблемой: есть небольшая база с огромным кол-вом картинок, что-то похожее на каталог. 95% базы занимают картинки. Хотелось бы к этой базе прикрутить резервное копирование, но без картинок, т.к. процесс с картинками занимает слишком много времени. Да и вообще иногда нужно переписать базу на флешку, чтобы поработать дома. Картинки меняются не часто, но сортируются/переставляются/привязываются постоянно.
Собственно вопрос: Есть ли в Firebird возможность как-то вынести таблицу картинок за пределы базы, создать ее в отдельной базе. И возможно ли объединить в одном датасете таблицы с разных баз.
Если нет, то может есть еще как-нибудь способ.
P.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520047
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваня,

с "оставить базу" есть только один вариант, с FB 2.5 и execute statement on external.

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

Дядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз.
нет.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520052
Дядя Ваня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvДядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз.
нет.
Ясно, а то я уже было подумал, что плохо искал.
Значит пойдем сложным путем....
Есть еще одна мысль: в основной базе хранить маленькие превьюшки, а во второй - полноценные картинки. Связи и целостность возложить на делфи.
Спасибо за ответ.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520055
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваня> Есть еще одна мысль: в основной базе хранить маленькие превьюшки, а во второй - полноценные картинки. Связи и целостность возложить на делфи.
Сказали ж тебе русским по серому:
храни в базе ПУТИ к файлам, а не сами файлы... Ну, до кучи можно и превьюшки, конечно...

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520063
Дядя Ваня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zirraСказали ж тебе русским по серому:
храни в базе ПУТИ к файлам, а не сами файлы...
О спасибо Вам, чтобы я без Вас делал.
Дядя ВаняP.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520074
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваня> P.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться.
Это с чего это оно "не очень быстро" и уж тем более "не очень удобно"???


--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520076
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваняя уже было подумал, что плохо искал.
Ты просто не то искал. В прикреплённой теме есть ссылка на частичный бэкап. Ну и
репликацию не-картинок в отдельную базу тоже никто не отменял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520098
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя ВаняP.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться.если картинки действительно такого размера, что для них есть смысл делать превьюшки (чтобы ускорить вывод) и их действительно настолько много, что бекап БД замедляется, то самое верное - хранить их на диске. хотя, с учетом "переписать базу на флешку" закрадываются некоторые сомнения))
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520101
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваня,

к слову - о каких объемах идет речь?
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520157
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядя Ваня,

мне вот не очень ясно, что значит "не очень быстро работает"? Как вам удалось добится, что непосредственное обращение к файловой системе (пусть даже сетевой) стало медленее, чем если использовать посредник в виде сервера БД?
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520298
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvДядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз.
нет.Почему? Например в основной базе храним связи, во вспомогательной пары ключ-блоб, хранимка в основной бд тащит связи, потом "он эктернал" подтягивает блобы.
Dimitry Sibiryakovрепликацию не-картинок в отдельную базу тоже никто не отменял.или скрипт, выкусывающий нужные таблицы в скрипт (пачку инсертов), потом полученный скрипт применить на таргет базе.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520720
SEYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дядя Ваня ,
я тоже как-то задавался вопросом, что бы такое сделать, чтобы ничего не делать файлы хранить на диске, но при этом можно было удобно получать к ним доступ из БД используя SQL и вообще работать с ними прозрачно, как буд-то они находятся в базе. Вопрос этот возник именно из-за того, что все эти файлы занимают достаточно приличную (если не бОльшую) по объему часть БД, благодаря чему база становится не очень "маневеренной" при бекапе и в случае, когда нужно резко сделать рестор. У меня база 75ГБ и рестор занимает примерно 40 минут, а вся ночная процедура бекапа рестора и прочих плясок примерно полтора часа. Не скажу, что это доставляет дискомфорт (поэтому пока эту задачу не решал), но база растет, причем достаточно быстро.

Так вот, мне понравилась идея, которую я нашел где-то тут на форуме, смысл такой: пишутся UDF, которые являются "мостом" между файловой системой и БД (в бд файл отдают и принимают как блоб, но работают с ним на диске). Далее подставляются эти UDF в вычисляемое поле (для select) и в триггеры (для insert/update/delete).

Сам не пробовал, но хочу попробовать. Может попробуешь ты, расскажешь что-нибудь интересное :)

Либо, если вдруг у тебя система более, чем двухзвенная, то на каком-то из промежуточных звеньев, можно этот процесс организовать без UDF.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520748
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEYDСам не пробовал, но хочу попробовать
ну и пробуй. мои функции blobsaveload, на ibase.ru.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520752
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SEYDпишутся UDF, которые являются "мостом" между файловой системой и БД (в бд файл отдают и принимают как блоб, но работают с ним на диске). Далее подставляются эти UDF в вычисляемое поле (для select) и в триггеры (для insert/update/delete).
+1, я бы и сам так сделал. А в случае надобности потом можно и способ хранения изменить (к примеру, на файл-контейнер) прозрачно для движка БД.
...
Рейтинг: 0 / 0
Хранение картинов в базе.
    #38520863
SEYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvну и пробуй. мои функции blobsaveload, на ibase.ru.

Спасибо. Мелочь, а приятно :)

попробовал, правда пока без самих UDF :)

и сразу понял, что в предыдущем посту я немного нагнал:
1. вычисляемое поле типа blob сделать нельзя (по крайней мере у меня не получилось)
2. Триггеры на вычисляемое поле вообще сделать нельзя (об этом я сразу не подумал)

учитывая вышесказанное, видимо нужно делать view с требуемыми полями и триггерами, что конечно не так круто, как хотелось бы. Я бы даже сказал, что это неудобно, если эти самые блобы хранятся в куче разных таблиц, тогда для этой самой кучи нужно будет создавать кучу вьюх...
Слава Богу, у меня все файлы хранятся в одной таблице :)

во всем ли я прав?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хранение картинов в базе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]