|
|
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
и прошу поверить мне на слово - свой TEMP я знаю :) ... ибо XML приходящий с сервера приложений и выгружаемый в TEMP бывает "небезгрешен" паэтому ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 09:30 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
2 афтору темы если уж остановишься на простом клиент-сервере (хотя вру - эта универсальный механизм) - введи в систему понятие "файловых шкафов" - в твоем случае это будут разные таблицы в БД ... соответсвенно ежедневные бэкапы необходимо нужно будет делать только с "активного" файлового шкафа ... ну и манипулируй ими переодически - сливай их допустим для создания "годового" и проч . ... возможностей для администрирования и проч. в этом случае - огромно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 09:53 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Ну чтобы клиент не видел путей, то тут уж точно БД - какое еще звено зачем приплетать. Администрировать, бэкапить и т.д. точно лучше в БД. Индексирование - ну тут разные возможности, в основном можно, про IB не говорим :) Файл откроется сам - если великие проектировщики файловых приложений не знают, что в БД можно хранить расширение файла, при запросе файла юзером сохранить во временный файл на диске с таким же расширением и дернуть стандартный метод винды открытия файла соответствующим такому типу файлов приложением - тогда о чем разговор вообще? При закрытии файла либо отслеживать это, либо явно жать кнопку сохранить файл. Пути - это зло, нужно где-то хранить, администрить фс, правильно переносить и т.д., более того, вы везде должны поддерживать возможность добраться до файла по прямому пути. В случае с БД вам пофиг, путей нет, бэкап без проблем, перенести файлы сразу все в любое другое место без переконфигурации сети и т.д. тоже без проблем. Положить куда-то локальную копию, в т.ч. части файлов - без проблем. И т.д. В общем, вообще нет проблем при хранении в БД. :)) -- Tygra's -- Мои фотогалереи тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 10:39 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
NSFuimus если уж остановишься на простом клиент-сервере (хотя вру - эта универсальный механизм) - введи в систему понятие "файловых шкафов" - в твоем случае это будут разные таблицы в БД ... соответсвенно ежедневные бэкапы необходимо нужно будет делать только с "активного" файлового шкафа ... Бэкапы обычно со всей БД бэкапятся. Это уж если хочется - да даже и нужно - делать отдельные БД по каким-то признакам. Годы, типы, отделы и т.д. Тогда и забыкапить легко будет, и поднять...... -- Tygra's -- Мои фотогалереи тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 10:42 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Бэкапы обычно со всей БД бэкапятся. "обычно" теряет всякий смысл когда идет речь о ежедневных бэкапах миллионов файлов "размером 0.1-80 Мб" то уж если хочется - да даже и нужно - делать отдельные БД по каким-то признакам. Годы, типы, отделы и т.д. Тогда и забыкапить легко будет, и поднять...... я предложил самый простой и ненадуманный вариант бэкапа - включать в него родного только ту таблицу в которую загружают файлы ВСЕХ типов, ВСЕ отделы, в течение ВСЕГО времени определяемого и контролируемого администратором ... и тд и тп ... этот механизм вообщем-то де-факто ... придуман не мной ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 10:49 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
А никто не задумывался о размере базы? Миллион файлов по 1Мб - это примерно 1Тб. Представьте, как тяжело администрировать такую базу. У нас сейчас стоит похожая задача, но там примерно 250Гб выходит, и вроде склоняемся к решению хранить пути в BFILE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 11:19 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
А никто не задумывался о размере базы? Миллион файлов по 1Мб - это примерно 1Тб. Представьте, как тяжело администрировать такую базу. истину глаголишь ... только лично я склоняюсь к среднему звену ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 11:29 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
авторМиллион файлов по 1Мб - это примерно 1Тб. Представьте, как тяжело администрировать такую базу Так в ФС не меньше получится! А то и больше, учтывая хвосты кластеров. И админить ФС с таким количеством файлов ничуть не легче. А размер MFT на такое кол-во файлов тоже не слабый получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 12:01 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Не знаю, упоминали или нет еще один плюс хранения файлов в БД - возможность применения к данным встроенных механизмов СУБД. В частности - репликация, бэкап, управление правами доступа. Это, конечно, реализуемо и в случае хранения файлов в ФС, но тогда придется использовать дополнительные интструменты и не всегда это легкореализуемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 12:16 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
IgorK авторМиллион файлов по 1Мб - это примерно 1Тб. Представьте, как тяжело администрировать такую базу Так в ФС не меньше получится! А то и больше, учтывая хвосты кластеров. И админить ФС с таким количеством файлов ничуть не легче. А размер MFT на такое кол-во файлов тоже не слабый получится. Мдя..файловая система нехилая получается, если учесть, что каждому файлу папку надо создать, да все это уровней на 40..50 по иерархии папок, так что при 1 миллионе файлов, файловых объектов больше, т.е. + папки, чем больше таких объектов,тем больше кусочков кластеров. Если детально разграничены права в самой базе, то трубуется, чтобы данные админом файл-сервера права юзерам на соотв. папки/подпапки соответствовали тем,что в БД. Но с другой стороны, восстановление из бэкапа большой БД тоже проблема. Мне захотелось обременить этими проблемами самого пользователя, пусть решает сам, а софтина должна давать выбор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 13:51 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Мне также кажется, что должно быть звено с интерфейсов, дающем возможность гулять по папкам сервера и вибирать файла(при соотв. правах), это должно быть доступно со стороны клиента, но он должен подключаться по TCP/HTTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 13:58 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
NSFuimus Бэкапы обычно со всей БД бэкапятся. "обычно" теряет всякий смысл когда идет речь о ежедневных бэкапах миллионов файлов "размером 0.1-80 Мб" то уж если хочется - да даже и нужно - делать отдельные БД по каким-то признакам. Годы, типы, отделы и т.д. Тогда и забыкапить легко будет, и поднять...... я предложил самый простой и ненадуманный вариант бэкапа - включать в него родного только ту таблицу в которую загружают файлы ВСЕХ типов, ВСЕ отделы, в течение ВСЕГО времени определяемого и контролируемого администратором ... и тд и тп ... этот механизм вообщем-то де-факто ... придуман не мной ... Это если у вас есть возможность забыкапить отдельно одну таблицу - валяйте. А если нет - чего бэкапить будете? Потому и лучше сразу разделять и структуру всего этого сразу прописывать. К тому же, выход с одной таблицей, в которой лежит все отовсюда за период, уж не знаю кем он там придуман, больше неразберихи принесет, чем делу поможет. -- Tygra's -- Мои фотогалереи тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 14:13 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
ПрограммиздищеМне также кажется, что должно быть звено с интерфейсов, дающем возможность гулять по папкам сервера и вибирать файла(при соотв. правах), это должно быть доступно со стороны клиента, но он должен подключаться по TCP/HTTP Тема собсно навеяна тем, что допустим пользователь имеет полные права, клиентская программа запущена за пределами LAN, а пользователь собирается некоторые файлы к базе прицепить/отцепить, может быть ничё и не надо писать, пусть ему возможность доступа к файлам админ обеспечивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 15:29 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
ПрограммиздищеМдя..файловая система нехилая получается, если учесть, что каждому файлу папку надо создать, да все это уровней на 40..50 по иерархии папок, так что при 1 миллионе файлов, файловых объектов больше, т.е. + папки, чем больше таких объектов,тем больше кусочков кластеров.а давайте-ка для начала определимся, зачем нам вообще файлы в БД? :) ну то есть тупо переносить какую-либо иерархию файлов в базу, по аналогии со структурой каталогов на диске - на мой взгляд просто ни к чему (мягко говоря). приведу пример: есть договор с поставщиком на тему свежих помидоров. кому-то из юзеров удобнее видеть документ в разделе "договоры с поставщиками", а кому-то - "договоры про помидоры" (извините за каламбур). :) но документ-то (или файл, если угодно) в обоих случаях один и тот же. а средств борьбы с миллионами файлов на одном диске/разделе/каталоге на уровне той же ос windows server есть несколько - и линки на уровне ntfs, и dfs тот же, да и всякие софт/хард продукты третьих фирм пачками продаются наверняка (я давно не изучал сей вопрос). файл в бд, фактически, нужен как некий блоб, для которого в бд хранятся атрибуты для разных целей (поиска, сортировки, группировки, выстраивания в разные иерархии и т. д.). хранить его в поле блоб или на диске - это вопрос различных удобств. на мой взгляд, хранение на диске более удобно (причины я описывал выше). кстати, всеми [не]любимый ms office (да и не только он, по-моему) имеет механизм атрибутов документов, встроенных в сам файл (document properties). засунув такой документ в блоб мы автоматически лишаем себя удовольствия поиска по таким атрибутам (думаю, что только у ms sql server есть такая возможность, если вообще есть). а если не лишаем, то получаем достаточно большой гемор по поддержке работы с этими атрибутами на серверной части разрабатываемого софта. другими словами, имея файл на диске мы имеем вагон существующих стандартных средств для работы с ним, а засунув его в блоб, в большинстве случаев, приходится эти средства реализовывать самостоятельно. либо на каждый чих вытаскивать файл из блоба на диск и делать там с ним что-то. а ради чего? просто ради того, чтобы все лежало в n-томовом файле бд? честно, не понимаю. ПрограммиздищеМне также кажется, что должно быть звено с интерфейсов, дающем возможность гулять по папкам сервера и вибирать файла(при соотв. правах), это должно быть доступно со стороны клиента, но он должен подключаться по TCP/HTTPучитывая вышесказанное, на сервере будет достаточно одноуровневой (ну или двухуровневой, смотря как считать) иерархии папок, ибо клиентское приложение не должно иметь прямой доступ в это хранилище ни под каким соусом. вся сопутствующая информация должна лежать в бд, в полях соответствующих таблиц. и, таким образом, дело клиентского приложения показать это юзеру в надлежащем виде - в виде папок, деревьев или еще как-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 19:11 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
miksoftНе знаю, упоминали или нет еще один плюс хранения файлов в БД - возможность применения к данным встроенных механизмов СУБД. В частности - репликация, бэкап, управление правами доступа. Это, конечно, реализуемо и в случае хранения файлов в ФС, но тогда придется использовать дополнительные интструменты и не всегда это легкореализуемо. Такой подход обычно подвергают критике как недостаточно извращенный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 09:46 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Программиздище miksoftНе знаю, упоминали или нет еще один плюс хранения файлов в БД - возможность применения к данным встроенных механизмов СУБД. В частности - репликация, бэкап, управление правами доступа. Это, конечно, реализуемо и в случае хранения файлов в ФС, но тогда придется использовать дополнительные интструменты и не всегда это легкореализуемо. Такой подход обычно подвергают критике как недостаточно извращенный.Поизвращаться нам и в других областях возможностей предостаточно :) Кстати, вспомнил еще один плюс за храБД - транзакционность. Т.е. гарантия, что документ и запись с его атрибутами будут наличествовать или отсутстовать одновременно и будут соответствовать друг другу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 10:56 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
Я фигею. Тут не клон файловой системы обсуждают, а конкретную задачу - для какой-то системы нужно хранить файлы. Договора ли это, спецификации или рисунки - фиолетово, просто должны каким-то образом файлыы быть "привязаны" к системе. Поэтому никого не волнуют какие-то десятки миллионов просто каких-то файлов, лежащих без причины на террабайтах дисков. В связи с этим многократные упоминания об индексации текстов и уж тем более о проблеме поиска по атрибутам идут лесом, даже бегут. Но дляя интереса, вы уж попробуйте поискать по тексту или по атрибутам .doc какие-то файлы самим вордом на ваших миллионах файлов - наверное жутко быстро и эффективно будет, так??? И так, определились - проблемы поиска по тексту и свойствам файлов у нас нет. Есть собственный классификатор для этих дел, который развивается в любую нужную сторону. Есть задача - привязать договора к поставщикам (например). Привязали. Храним файлы в БД. Чего имеем из плюсов: - легкое бэкапирование - легкое манипулирование - возможность простой репликации куда хочешь - и самое главное, полная независимость от сетки : нам не нужны ни пути, смапленные на файловое хранилище, ни вечная проблема переноса-переименования-переконфигурации серверов, сети и т.д., ни вообще коннект к любому файл-серверу и т.п. Файлы всегда с нами в системе, даже если вы сидите через VPN, десять провайдеров или вообще на локальном IP - файлы тут, не нужен никакой путь никуда, вообще плевать, где и какая сеть. Это самое главное. И эта система расширяема в любые стороны на сколько хошь. Минусов нет Минусы только при размещении файлов в файловой системе. Одни минусы. ========= Vadim Kruglikа давайте-ка для начала определимся, зачем нам вообще файлы в БД? :) ну то есть тупо переносить какую-либо иерархию файлов в базу, по аналогии со структурой каталогов на диске - на мой взгляд просто ни к чему (мягко говоря). Выше все сказано автор приведу пример: есть договор с поставщиком на тему свежих помидоров. кому-то из юзеров удобнее видеть документ в разделе "договоры с поставщиками", а кому-то - "договоры про помидоры" (извините за каламбур). :) но документ-то (или файл, если угодно) в обоих случаях один и тот же. И причем тут БД? автора средств борьбы с миллионами файлов на одном диске/разделе/каталоге на уровне той же ос windows server есть несколько - и линки на уровне ntfs, и dfs тот же, да и всякие софт/хард продукты третьих фирм пачками продаются наверняка (я давно не изучал сей вопрос). А в случае с БД все уже решено, не надо никаких третьих фирм и т.д. авторфайл в бд, фактически, нужен как некий блоб, для которого в бд хранятся атрибуты для разных целей (поиска, сортировки, группировки, выстраивания в разные иерархии и т. д.). хранить его в поле блоб или на диске - это вопрос различных удобств. на мой взгляд, хранение на диске более удобно (причины я описывал выше). Файл нам нужен как файл. А причин для фс я не нашел ни у кого - нашел только незнание возможностей СУБД. авторкстати, всеми [не]любимый ms office (да и не только он, по-моему) имеет механизм атрибутов документов, встроенных в сам файл (document properties). засунув такой документ в блоб мы автоматически лишаем себя удовольствия поиска по таким атрибутам (думаю, что только у ms sql server есть такая возможность, если вообще есть). Нам этих удовольствий и не надо. :)) авторлибо на каждый чих вытаскивать файл из блоба на диск и делать там с ним что-то. а ради чего? просто ради того, чтобы все лежало в n-томовом файле бд? честно, не понимаю. Ради того, чтобы не было проблем, мной выше описанных (которыми не страдает БД). Программиздище miksoftНе знаю, упоминали или нет еще один плюс хранения файлов в БД - возможность применения к данным встроенных механизмов СУБД. В частности - репликация, бэкап, управление правами доступа. Это, конечно, реализуемо и в случае хранения файлов в ФС, но тогда придется использовать дополнительные интструменты и не всегда это легкореализуемо. Такой подход обычно подвергают критике как недостаточно извращенный. И обычно критикуют те, кто СУБД в глаза не видел. Еще раз напомню, если кто забыл - здесь не обсуждается пространная система хранения всех файлов из всех файловых серверов локального интернет-провайдера :)) Есть конкретная задача. -- Tygra's -- Мои фотогалереи тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 11:29 |
|
||
|
Стоит ли хранить содержимое файлов в полях базы данных?
|
|||
|---|---|---|---|
|
#18+
tygraНо дляя интереса, вы уж попробуйте поискать по тексту или по атрибутам .doc какие-то файлы самим вордом на ваших миллионах файлов - наверное жутко быстро и эффективно будет, так??? вы не поверите, но именно так и будет. быстро и эффективно. ибо будет использован построенный предварительно индекс. кстати, что за термин "самим вордом" - мне непонятно, ибо поиск осуществляет не он сам, точнее, поиск идет при использовании некоего api к некоему индексатору. а кто уж юзает этот апи - ворд или свой собственный софт - по барабану. tygraИ так, определились - проблемы поиска по тексту и свойствам файлов у нас нет. Есть собственный классификатор для этих дел, который развивается в любую нужную сторону.известная ошибка разработчика. сегодня нет такой задачи, завтра возникла. будем переписывать систему? опять же, а если файлов уже есть сотня-другая тысяч? будем срочно разрабатывать классификатор, писать приблуду, которая по контенту файла будет его описывать по этому классификатору. зачем, если есть стандартные средства и пользователи смогут искать свои файлы сразу? tygraЕсть задача - привязать договора к поставщикам (например). Привязали. Храним файлы в БД. Чего имеем из плюсов: - легкое бэкапирование - легкое манипулирование - возможность простой репликации куда хочешьпо первым двум пунктам ну совершенно не понимаю, чем легче бэкапить базу или пачку файлов? особенно если файлы - гиговые мувики, которые не изменяются. верю, что возможно в конкретных реализациях некоторых конкретных субд это легко решается, но в общем случае ведь это не так. tygra- и самое главное, полная независимость от сетки : нам не нужны ни пути, смапленные на файловое хранилищезато нужны пути на клиенте, куда складывать файл при работе с ним. или функционал в третьем слое, который будет, например, показывать тот же гиговый мувик, отслеживать "прокрутку" и т. д. между прочим, пути на сервере тоже особо не нужны. точнее, не нужно раздувать из этого такую проблему, ибо путей там два: один к общему хранилищу внутри системы, а второй - к каталогу с домашними каталогами пользователей системы, которые генерятся по определенным правилам. tygraни вечная проблема переноса-переименования-переконфигурации серверов, сети и т.д., ни вообще коннект к любому файл-серверу и т.п. Файлы всегда с нами в системе, даже если вы сидите через VPN, десять провайдеров или вообще на локальном IP - файлы тут, не нужен никакой путь никуда, вообще плевать, где и какая сеть.вы что-нибудь про, например, WebDAV слышали? Становится также пофигу, за какими там vpn/fw/etc лежит файлик. кстати, MS Office его отлично понимает. tygra автора средств борьбы с миллионами файлов на одном диске/разделе/каталоге на уровне той же ос windows server есть несколько - и линки на уровне ntfs, и dfs тот же, да и всякие софт/хард продукты третьих фирм пачками продаются наверняка (я давно не изучал сей вопрос). А в случае с БД все уже решено, не надо никаких третьих фирм и т.д.ага-ага, вы это расскажите крупным конторам, которые покупают аппаратные хранилища по куче террабайт. как раз от третьих фирм. кстати, этим третьим фирмам в общем-то тоже пофигу, что там в этом хранилище лежит - один огромный файл бд или миллион просто файлов. кстати, основной аргумент-то вы и поскипали. повторюсь, на всякий случай: имея файл на диске мы имеем вагон существующих стандартных средств для работы с ним, а засунув его в блоб, в большинстве случаев, приходится эти средства реализовывать самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2007, 22:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34257785&tid=1544784]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
192ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 506ms |

| 0 / 0 |
