|
|
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Столкнулся с такой проблемой: есть небольшая база с огромным кол-вом картинок, что-то похожее на каталог. 95% базы занимают картинки. Хотелось бы к этой базе прикрутить резервное копирование, но без картинок, т.к. процесс с картинками занимает слишком много времени. Да и вообще иногда нужно переписать базу на флешку, чтобы поработать дома. Картинки меняются не часто, но сортируются/переставляются/привязываются постоянно. Собственно вопрос: Есть ли в Firebird возможность как-то вынести таблицу картинок за пределы базы, создать ее в отдельной базе. И возможно ли объединить в одном датасете таблицы с разных баз. Если нет, то может есть еще как-нибудь способ. P.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 01:40:08 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня, с "оставить базу" есть только один вариант, с FB 2.5 и execute statement on external. по другому никак. Только вручную - выгружать блобы в файлы, в таблице сохранять ссылки на файлы. Дядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз. нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 01:47:34 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
kdvДядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз. нет. Ясно, а то я уже было подумал, что плохо искал. Значит пойдем сложным путем.... Есть еще одна мысль: в основной базе хранить маленькие превьюшки, а во второй - полноценные картинки. Связи и целостность возложить на делфи. Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 02:01:11 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня> Есть еще одна мысль: в основной базе хранить маленькие превьюшки, а во второй - полноценные картинки. Связи и целостность возложить на делфи. Сказали ж тебе русским по серому: храни в базе ПУТИ к файлам, а не сами файлы... Ну, до кучи можно и превьюшки, конечно... -- Vladimir A.Bakhvaloff E-Mail: zirra1969<bark>gmail<dot>com Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 02:11:16 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
zirraСказали ж тебе русским по серому: храни в базе ПУТИ к файлам, а не сами файлы... О спасибо Вам, чтобы я без Вас делал. Дядя ВаняP.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 02:27:54 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня> P.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться. Это с чего это оно "не очень быстро" и уж тем более "не очень удобно"??? -- Vladimir A.Bakhvaloff E-Mail: zirra1969<bark>gmail<dot>com Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 02:38:20 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваняя уже было подумал, что плохо искал. Ты просто не то искал. В прикреплённой теме есть ссылка на частичный бэкап. Ну и репликацию не-картинок в отдельную базу тоже никто не отменял. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 02:44:06 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя ВаняP.S. Про хранение картинок в виде файлов знаю, но не очень удобно и не очень быстро работает, собственно с этого начинали, не хотелось бы возвращаться.если картинки действительно такого размера, что для них есть смысл делать превьюшки (чтобы ускорить вывод) и их действительно настолько много, что бекап БД замедляется, то самое верное - хранить их на диске. хотя, с учетом "переписать базу на флешку" закрадываются некоторые сомнения)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 03:45:09 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня, к слову - о каких объемах идет речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 03:46:47 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня, мне вот не очень ясно, что значит "не очень быстро работает"? Как вам удалось добится, что непосредственное обращение к файловой системе (пусть даже сетевой) стало медленее, чем если использовать посредник в виде сервера БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 08:28:05 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
kdvДядя ВаняИ возможно ли объединить в одном датасете таблицы с разных баз. нет.Почему? Например в основной базе храним связи, во вспомогательной пары ключ-блоб, хранимка в основной бд тащит связи, потом "он эктернал" подтягивает блобы. Dimitry Sibiryakovрепликацию не-картинок в отдельную базу тоже никто не отменял.или скрипт, выкусывающий нужные таблицы в скрипт (пачку инсертов), потом полученный скрипт применить на таргет базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 11:41:05 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
Дядя Ваня , я тоже как-то задавался вопросом, что бы такое сделать, чтобы ничего не делать файлы хранить на диске, но при этом можно было удобно получать к ним доступ из БД используя SQL и вообще работать с ними прозрачно, как буд-то они находятся в базе. Вопрос этот возник именно из-за того, что все эти файлы занимают достаточно приличную (если не бОльшую) по объему часть БД, благодаря чему база становится не очень "маневеренной" при бекапе и в случае, когда нужно резко сделать рестор. У меня база 75ГБ и рестор занимает примерно 40 минут, а вся ночная процедура бекапа рестора и прочих плясок примерно полтора часа. Не скажу, что это доставляет дискомфорт (поэтому пока эту задачу не решал), но база растет, причем достаточно быстро. Так вот, мне понравилась идея, которую я нашел где-то тут на форуме, смысл такой: пишутся UDF, которые являются "мостом" между файловой системой и БД (в бд файл отдают и принимают как блоб, но работают с ним на диске). Далее подставляются эти UDF в вычисляемое поле (для select) и в триггеры (для insert/update/delete). Сам не пробовал, но хочу попробовать. Может попробуешь ты, расскажешь что-нибудь интересное :) Либо, если вдруг у тебя система более, чем двухзвенная, то на каком-то из промежуточных звеньев, можно этот процесс организовать без UDF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 16:44:09 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
SEYDСам не пробовал, но хочу попробовать ну и пробуй. мои функции blobsaveload, на ibase.ru. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 16:58:59 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
SEYDпишутся UDF, которые являются "мостом" между файловой системой и БД (в бд файл отдают и принимают как блоб, но работают с ним на диске). Далее подставляются эти UDF в вычисляемое поле (для select) и в триггеры (для insert/update/delete). +1, я бы и сам так сделал. А в случае надобности потом можно и способ хранения изменить (к примеру, на файл-контейнер) прозрачно для движка БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 17:00:02 |
|
||
|
Хранение картинов в базе.
|
|||
|---|---|---|---|
|
#18+
kdvну и пробуй. мои функции blobsaveload, на ibase.ru. Спасибо. Мелочь, а приятно :) попробовал, правда пока без самих UDF :) и сразу понял, что в предыдущем посту я немного нагнал: 1. вычисляемое поле типа blob сделать нельзя (по крайней мере у меня не получилось) 2. Триггеры на вычисляемое поле вообще сделать нельзя (об этом я сразу не подумал) учитывая вышесказанное, видимо нужно делать view с требуемыми полями и триггерами, что конечно не так круто, как хотелось бы. Я бы даже сказал, что это неудобно, если эти самые блобы хранятся в куче разных таблиц, тогда для этой самой кучи нужно будет создавать кучу вьюх... Слава Богу, у меня все файлы хранятся в одной таблице :) во всем ли я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 18:01:02 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38520052&tid=1563998]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
447ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 805ms |

| 0 / 0 |
