Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Как записать в таблицу БД текст объёмом свыше 2-х мегабайт?   Найти похожие ветки 

 
Rouse_ ©   (2014-02-20 11:40) [40]


> Ты изменил бы свое мнение, когда столкнулся бы с системой,
>  хранящей миллионы файлов и с которой постоянной работает
> хотя бы десяток человек.

У нас развернута такая система, с ней работает пара сотен тысяч человек, а не десятков. Это собственно сервер обновлений, в котором ежедневно меняется 7-10 файлов размером от 10 до 60 мегов каждый, а всего файлов в районе 900 с копейками + ежемесячно по 10-15 новых добавляется).
Перешли на хранение файлов вне базы именно из-за тормозов.


 
Ega23 ©   (2014-02-20 12:16) [41]


> Перешли на хранение файлов вне базы именно из-за тормозов.


Ты уверен, что именно из-за них?

По теме:
В хранении файлов вне СУБД есть только один плюс: скорость полного бэкапа. Дифференцированный бэкап, ЕМНИП, есть не у каждой СУБД.
В остальном это плохо из-за:
1. Отсутствия ссылочной целостности.
2. Отсутствии в разграничении прав доступа.

Практика хранения блобов вне СУБД - чисто историческое явление. Ну когда там всякие ограничения на размер самой БД были. А, ещё поколение MySQL-щиков тоже тут постаралось.


 
Rouse_ ©   (2014-02-20 12:17) [42]


> Ты уверен, что именно из-за них?

Угу, можешь у Жеки уточнить в понедельник, он более подробно расскажет.


 
brother ©   (2014-02-20 12:28) [43]

> неверные ссылки и коллизии между действиями разных пользователей

еще раз - read only
коллизии - обращение нескольких пользователей к одному файлу? если да - не вижу проблемм...


 
Ega23 ©   (2014-02-20 12:35) [44]


> еще раз - read only
> коллизии - обращение нескольких пользователей к одному файлу?


рид-онли - это небольшой частный случай.

Фактически, храня файлы вне СУБД, часто приходится изобретать велосипед по реализации поверх них СУБД-шного функционала. Который в СУБД уже реализован.


 
Jeer ©   (2014-02-20 15:19) [45]

>Перешли на хранение файлов вне базы именно из-за тормозов.

Расчетливые практики давно это поняли и предоставили поле битвы "файлы vs blob-поля" теоретикам, которым тоже надо кушать и которые хотят, чтобы их слушали.
Слушаем, но делаем по-своему.


 
brother ©   (2014-02-20 16:27) [46]

> но делаем по-своему.

О_о это как? ведь только 2 варианта:

> файлы vs blob-поля


 
Inovet ©   (2014-02-20 16:33) [47]

> [46] brother ©   (20.02.14 16:27)

Например, можно файлы не расшаривать, сделать свой протокол передачи, нужных кусков в обоих направлениях с учётом специфики.


 
DVM ©   (2014-02-20 16:37) [48]


> Например, можно файлы не расшаривать, сделать свой протокол
> передачи, нужных кусков в обоих направлениях с учётом специфики.
>

Зачем делать протокол, если он уже сделан в сервере СУБД?
Сначала мы будем делать протокол, потом мы будем пытаться разрулить одновременный доступ, потом мы будем заниматься синхронизацией файловой системы с базой, потом...


 
Inovet ©   (2014-02-20 16:44) [49]

> [48] DVM ©   (20.02.14 16:37)
> Зачем делать протокол

Раз 1 и 2 варианты не устраивают по каким-то причинам.


 
Ega23 ©   (2014-02-20 16:48) [50]


> Расчетливые практики давно это поняли


Это всё хорошо работает только в том случае, когда вся эта байда стоит где-то далеко и пытливые ручки пользователей, а также пытливые ручки наполняльщиков БД не могут дотянуться до этих файлов.
И опять-таки невозможность snapshot-транзакции.


 
Ega23 ©   (2014-02-20 16:50) [51]


> Раз 1 и 2 варианты не устраивают по каким-то причинам.


Практика показывает, что в 99% случаев хранение блобов вне СУБД - это либо неправильный выбор самой СУБД, либо блажь в стиле "да я всегда так делал и всё работало".


 
Rouse_ ©   (2014-02-20 16:54) [52]


> Ega23 ©   (20.02.14 16:50) [51]
> Практика показывает, что в 99% случаев хранение блобов вне
> СУБД - это либо неправильный выбор самой СУБД, либо блажь
> в стиле "да я всегда так делал и всё работало".

Хочешь я на тебя задачу по серваку перекину завтра? :)
Чиста для поржать через месяц, когда ты будешь говорить все с точностью наоборот? :)


 
Ega23 ©   (2014-02-20 16:57) [53]

Когда-то давным давно, когда пни ещё были 133-ми, винты - гигабайтными, а винда - 95-й и стояла параллельно с DOS-ом, понадобилось моему бате под DOS-ом место на диске C. А места-то и не было. Посмотрев, чё каг, он обнаружил огромный файл на 40 метров с расширением swp. И удалил его к лешему. И записал на освободившееся место то, что было нужно.
А потом матерился и говорил что-то про масдай, который ваще негрузицо.

Такая вот история. Это к вопросу ссылочной целостности.


 
Rouse_ ©   (2014-02-20 16:59) [54]


> Ega23 ©   (20.02.14 16:50) [51]
> Практика показывает, что в 99% случаев хранение блобов вне
> СУБД - это либо неправильный выбор самой СУБД, либо блажь
> в стиле

Кстати Легыч, до кучи - знаешь почему у нас багтрекер три дня лежал, да и щас ворочается едва? Все из-за того что ELF аттачи (сами по себе махонькие по 100 кб в среднем) сидят в базе. Жека эксперементировал с этим делом и щас тож думает как их оттуда выцарапать, чтоб базенка не проседала на 200 тыщах дубликатов.


 
Ega23 ©   (2014-02-20 17:00) [55]


> Чиста для поржать через месяц, когда ты будешь говорить
> все с точностью наоборот? :)


Ты внимательно [50] прочитал? Не ты ли столько раз говорил про какую-нить бабку, которая сносит userdb потому что "а нафиг оно нужно?".


 
Ega23 ©   (2014-02-20 17:02) [56]


> Кстати Легыч, до кучи - знаешь почему у нас багтрекер три
> дня лежал, да и щас ворочается едва? Все из-за того что
> ELF аттачи (сами по себе махонькие по 100 кб в среднем)
> сидят в базе. Жека эксперементировал с этим делом и щас
> тож думает как их оттуда выцарапать, чтоб базенка не проседала
> на 200 тыщах дубликатов.


Так может проблема не в хранении их "где-то-там", а в выборе СУБД и железа под конкретную задачу?


 
Rouse_ ©   (2014-02-20 17:03) [57]


> Ega23 ©   (20.02.14 17:00) [55]
> Ты внимательно [50] прочитал? Не ты ли столько раз говорил
> про какую-нить бабку, которая сносит userdb потому что "а
> нафиг оно нужно?".

Прочитал и че? У нас сервер ГС от пятерки который хранит данные в куче поддерживаемых форматов баз, как фаерберд, MSSQL, так и ораклы всякие и че там еще впихнуть можно.
Угадай, сколько тикетов в багтрекере из-за того что базы убитые стали?
А как думаешь кто убил? А воть такие-же специалисты, которые SWP файл грохают, а потом матерятся и задают вопросы о ссылочной целостности :))))


 
DVM ©   (2014-02-20 17:06) [58]


> Rouse_ ©   (20.02.14 16:59) [54]


> Все из-за того что ELF аттачи (сами по себе махонькие по
> 100 кб в среднем) сидят в базе.

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


 
Rouse_ ©   (2014-02-20 17:08) [59]


> DVM ©   (20.02.14 17:06) [58]
> Все из-за неправильного запроса где нибудь.

Мошт и так, но это уже к Жеке, он их саппорт достаточно сильно напрягает и они вроде все оперативно правят. Мошт и с этим разберутся, а пока что ситуация выглядит так, как я ее описал.


 
Ega23 ©   (2014-02-20 17:13) [60]


> А как думаешь кто убил? А воть такие-же специалисты, которые
> SWP файл грохают, а потом матерятся и задают вопросы о ссылочной
> целостности :))))


Представь себе на секундочку, что наш ImageList на 300 с лишним иконок сидит не в датамодуле, а каждая иконка лежит рядом с exe-шником отдельным файлом.
Сколько в течении недели позвонят в суппорт с претензией "у меня иконки слетели, программа не работает"?


 
sniknik ©   (2014-02-20 17:17) [61]

> где нибудь явно или косвенно вытянуть в запросе.
запросы с * используют например... и тянутся не нужные "файлы" на клиента.


 
Rouse_ ©   (2014-02-20 17:18) [62]


> Ega23 ©   (20.02.14 17:13) [60]

Ты лезешь в крайности, но впрочем... представь что они сидят в базе - вопрос будет такой-же.


 
Ega23 ©   (2014-02-20 17:38) [63]


>  представь что они сидят в базе - вопрос будет такой-же.


А как ты в базу просто так залезешь?


 
Rouse_ ©   (2014-02-20 18:02) [64]


> Ega23 ©   (20.02.14 17:38) [63]
> А как ты в базу просто так залезешь?

А она перестала быть файлом на диске?


 
dehkanin   (2014-02-20 18:12) [65]

Ни фига себе чего Вы понаписали!
Я правильно понял, что лучше хранить в blob?
В принципе я так и делал, но кто-то меня раскритиковал и я засумлевался.
А string, WideString, AnsiString, Memo?


 
Rouse_ ©   (2014-02-20 18:17) [66]


> dehkanin   (20.02.14 18:12) [65]
> Ни фига себе чего Вы понаписали!
> Я правильно понял, что лучше хранить в blob?

Мнения скажем так, разделились.
Часть апологетов за блоб, а остальные за хранение во внешнем файле :)


 
clickmaker ©   (2014-02-20 18:28) [67]

> А string, WideString, AnsiString

а с ними-то какие сложности?


 
dehkanin   (2014-02-20 18:37) [68]

А разве они потянут объем 2 мб?
Кажется не получится.


 
dehkanin   (2014-02-20 18:38) [69]

Имея ввиду хранение в таблице?


 
clickmaker ©   (2014-02-20 18:39) [70]

> А разве они потянут объем 2 мб?

почему не потянут? строка на 32-бит системе может быть до 2 гигов


 
dehkanin   (2014-02-20 18:41) [71]

А как это можно сделать? Применительно к таблице?


 
dehkanin   (2014-02-20 18:42) [72]

Я -не представляю как!


 
dehkanin   (2014-02-20 18:44) [73]

Вот есть, например, файл .rtf  около 2 мб.
Как его записать в строкой, как Вы говорите и впихнуть в таблицу?


 
Inovet ©   (2014-02-20 18:48) [74]

> [73] dehkanin   (20.02.14 18:44)

Ты про таблицу здесь не спрашивал, ты спросил про типы в Делфи

> [65] dehkanin   (20.02.14 18:12)
> А string, WideString, AnsiString, Memo?


 
clickmaker ©   (2014-02-20 18:49) [75]

> и впихнуть в таблицу?

в поле типа Blob или как оно там называется в Absolute Database, какие проблемы?


 
Ega23 ©   (2014-02-20 19:22) [76]


> А она перестала быть файлом на диске?


Да, но это 1 файл. А не 100500 маленьких.
Лан, завтра за стаканом поспорим :))


 
Rouse_ ©   (2014-02-20 19:24) [77]


> Ega23 ©   (20.02.14 19:22) [76]
> Лан, завтра за стаканом поспорим :))

Приходи с деньгами, я люблю дорогой коньяк :)


 
Ega23 ©   (2014-02-20 19:38) [78]

Да-да. И Дима сидит с Gtool и 30 тыщ файлов в блобах. И материалов ещё 200 тыщ. А в базе - ссылки.


 
Rouse_ ©   (2014-02-20 19:43) [79]


> Ega23 ©   (20.02.14 19:38) [78]
> Да-да. И Дима сидит с Gtool и 30 тыщ файлов в блобах. И
> материалов ещё 200 тыщ. А в базе - ссылки.

Кстати об этом...
Тебе не кажется что только запуск вот этой всей штуки, которой ты перечислил и сам реализовал, у Димы занимает около пяти-семи минут? :)


 
Rouse_ ©   (2014-02-20 19:44) [80]


> Тебе не кажется

Блин, * Тебе не кажется - что это слишком дохрена времени? :)



Страницы: 1 2 3 4 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.62 MB
Время: 0.053 c
15-1417987802
Юрий
2014-12-08 00:30
2015.09.10
С днем рождения ! 8 декабря 2014 понедельник


15-1417507967
alexdn
2014-12-02 11:12
2015.09.10
Статистика запуска программы


15-1413142327
xayam
2014-10-12 23:32
2015.09.10
Задача


15-1412001218
L_G
2014-09-29 18:33
2015.09.10
Многопоточное программирование: низкий старт


15-1416494832
alexdn
2014-11-20 17:47
2015.09.10
Как настроить редирект





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский