Хранить файло в MySQL
Барра Белый Гепард 25 Августа, 2007 - 18:26
Есть у меня такая проблема.... Причём не у компа, а именно у меня - со временем однотипные файлы разбредаются как то по разным папкам. Кто в home, кто по Desktop... Я вот думаю попробовать хранить файло в MySQL. Есть способ закинуть файл в BLOB (и вынуть оттуда) штатными средствами? Не разрастается ли размер базы как в Access (примерно квадрат суммарного веса файлов). Кто-нибудь знает? Google - нет.
Про огромные пакеты типа OOo Base не говорите - у меня очень дорогой инет.
»
- Для комментирования войдите или зарегистрируйтесь
exist?
ты вроде для явы пишеш - так почему-бы не exist ? я не великий спец, но у меня товарищ так делал. Файлы как и в ФС лежат.
---------
Просто упис`ался уже. Я В ОТПУСКЕ! Написать то можно быстренько....
FUSE
Есть fuse файловые системы для mysql.
Идея сделать фс
Идея сделать фс на основе не так и нова. Майкрософт хотел, хьюлит хотел.
Это вот модуль к фусе
https://sourceforge.net/projects/mysqlfs/
Теоретически весьма сомнительно. Дело в том что в лине файловая система это лес. Причем странный такой лес, где физически один файл может называться по разному и валяться одновременно в разных местах (типа хардлинка). Теория реляционки плохо вяжется с лесом. Обработать можно но с оптимизацией и индексацией плохо. Про существенную прибавку в скорости поиска ссылок не встречал. find да grep - весьма вменяемые тузлы.
Для линя была
Для линя была такая разработка DBFS (Database File System), по скриншотам выглядело супер, но к сожалению проект куда-то пропал...
Нее
Я собираюсь добиться совсем не этого... В принципе, у меня проект написания читалки для книг выливается в следующее. Я хочу сделать файловый менеджер с возможностью поиска по тегам файла, простой способ вешать эти самые теги на файл любого типа, и удобные средства конвертации файлов в один стандартный формат (по желанию юзера, конечно). Это обеспечит лёгкость хранения коллекции любых файлов. У меня таких 2. 20 гигов репродукций живописи и 70 гигов технической литературы. Для второй, например, полезна будет саморасстановка тегов (устарело)....
В общем работаю. В основном для себя, но надеюсь получить прогу, полезную для всех.
Сейчас остановился на таком формате данных (его несложно поменять в будущем). Прога переименовывает все файлы в index (это для удобного хранения слитых сайтов). Затем пакует в 7z. Пишет XML с параметрами файла (название, автор, теги, формат). Затем создает в своей папке подкаталог с порядковым номером вместо имени. Программа позволяет юзверю искать файл по любым параметрам (в будущем - интегрирую с beagle или свой индексатор добавлю). Когда он захочет посмотреть файл, тот распаковывается в tmp и открывается. Для скорости файлы XML дублируются в базу MySQL. Так же работает Amarok.
А ещё я подумываю, может мне и сами файлы хранить в MySQL? Как мнение народа?
Все это было
Все это было когда-то реализовано в DBFS...
Фишку с тегами и т.п. вроде в КДЕ4 будет или в одном из его дополнений, я презентацию видел, но не помню где... Конвертацию форматов легко сделать добавив скрипт к Konqueror.
Думаю многое из того что ты хочешь можно удобно реализовать через fuse.
Ашипка!!!
Привязывать подобную штуку к конкретному браузеру - моветон!
Ничего не имею против Конкверора, но у меня на машинке нет ни Гнома, ни КДЕ :):):)
Думаю, так не только у меня.
Фишка будет, если удасться реализовать также универсально, как и файловую систему?
emerge is not apt-get
1) Скорость
1) Скорость работы? Ежели разобраться, запихивание файла в блоб увеличит время доступа. Вместо того, чтоб читать файл из фс, надо обратиться к мускулю, который спросит в конечном счете у фс кусок мегафайла.
2) Устойчивость системы? Вероятность попортить один мегафайл значительно выше нежели много маленьких.
PS
Кстати удачные попытки индексировать фс без использования каких либо субд имели место быть. Тот же eix к примеру. Не так давно где-то в сети обсуждали похожие поисково-индексирующие тузлы. Линк не помню.
ну вот - exist
ну вот - exist какраз и есть маленькая XML-база, встраиваемая в приложения(или не встраиваемая - как хош). Туда и XML напрямую пихать можно, и файлы заливать...
я так на сайте с обьявлениями редактировал документы - примайнтил её через webdav и вперёд.
Пойдёт везде и
Пойдёт везде и у всех. На данный момент единственное обязательное требование - JRE. Про eXist уже давно прочитал - не впечатлило. Хранить файлы в MySQL мне хочется для того, чтобы не думать, как их разбивать. Если хранить много мелких файлов в одном каталоге, очень тормозит вся fs. Да и экономия места в случае использования юзверем fs без связывания хвостов будет заметная. Да на ext3 запас iNode не будет отъедаться. Да всякие updatedb меньше шебуршить будут, ибо им в пачке файлов с именами 1 2 3 4 делать нечего. Заметно меньшее время проверки нежурналируемых fs. Конкретный прирост скорости в случае использования по сети.
Минусов вижу два. Нужно придумать систему backup для метаданных, чтобы повреждённый бит не обрушил всю таблицу. Это надо внимательнее прочитать документы по MySQL. И второй - потери скорости доступа, особенно для пользователей fs со связыванием хвостов, по сравнению с описанным выше способом, хотя и небольшие. Хотя этого можно избежать использованием tmpfs. (А пользователи ОС на три буквы опять обломятся). Что теперь скажете? Не знаю, к чему склонится. Можно конечно и так, и так реализовать, но потом-то что использовать?
А. Ещё третий минус - beagle по MySQL не пройдётся....