При загрузке файлов пользователя, Друпал сохраняет их в файловой системе сервера. Как сделать так чтобы файлы загружались в БД (ну и извлекались оттуда соответственно).
Еще, не слишком ли это ресурсоемкая операция ???
Операция не то, чтобы особо ресурсоемкая, просто не нужная.
1) БД предназначались совсем не для хранения файлов (стандартные), поэтому оптимизации нет.
2) Намного быстрее выйдет операция когда сервер отдает файл с жесткого, нежели вытаскивает его из БД
3) В БД файлы занимают больше места, чем на жестком. Тут на 100% не уверен, но несколько раз сталкивался.
Вывод - однозначно не стоит. Хотя, если БД какая-то особенная (то есть не MySQL, postgreSQL) - можно попробовать.
Просто есть много-много дискового места, и там стоит БД.
Но хостин к этому месту невозможен (причины) зато доступ из сети к БД пожалуйста.
Да и если все в БД хранить, то легко переносить сайты (туда сюда).
Вообще есть идея как хранить в БД «все» что отражает индивидуальность сайта (шаблоны, модули, локализации, навороты) а один двтижёк (Друпал) все бы это обслуживал.
Ну да, размещаем Drupal в аккаунтах google-почты (gmail.com). Там много места дают и бесплатно. А что, плагин ведь есть, который почтовый ящик gmail в дополнительный диск превращает.
Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы?
И в базу складывать. "Иголка в яйце. Яйцо в утке. Утка в..."
Вообще есть идея как хранить в БД «все» что отражает индивидуальность сайта (шаблоны, модули, локализации, навороты) а один двтижёк (Друпал) все бы это обслуживал.
Насчет "один движок" - это мультисайтинг, который Drupal умеет. Вся "индивидуальность" собирается при этом в каталоге sites/имясайта, который не так уж и сложно переносить.
Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы?
Мне пока нужно чтобы все информация заносимая пользователем через сайт хранилась в БД.
Пока только текст помещается в БД.
Как сделать так чтобы файлы и картинки, загружаемые пользователем, хранились в БД ???
Помогите я пока не представляю, как это сделать.
Может. Drupal их активно юзает, например в таблице locales_source поле source имеет тип blob.
Чтобы хранить файлы в БД, думю надо переписать file API Drupal. Может есть и проще решение.
А модуля нет подобного ???
Или тогда где находится это file API Drupal ???
Не по теме: есть такая БД Cache (широко известная в узких кругах) так в ней БЛОБы это чуть ли не основной тип данных, и рекомендации в описаниях БД хранить гигабайтное потоковое видео и аудио. Вроде даже доступ быстрее чем из файловой системы. Вообще я тоже склоняюсь что файловые системы умрут, все и вся будут обращаться и хранить в БД.
Доступ не может быть быстрее, чем к файловой системе по определению(если только db не держит огромный кэш в памяти). Или SQL сам является частью системы.
А тут вспоминается старая реприза: 'достаёт кошёлку, открывает кошёлку, достает сумочку, закрывает кошёлку открывает сумочку достает кошелек закрывает сумочку ....'
======================================================
[url=http://wiki.drupal.ru]Документация[/url],[url=http://wiki.drupal.ru/doc/poleznye_ssylki_dlya_dizainerov]Дизайн[/url],[url=http://wiki.drupal.ru/doc/gotovye_perevody]Переводы[/url]
> Или тогда где находится это file API Drupal ???
includes/file.inc
api.drupal.org
> Вообще я тоже склоняюсь что файловые системы умрут, все и вся будут обращаться и хранить в БД.
Любая файловая система является базой данных, только очень ограниченой. Если посмотреть на развитие ФС, то можно увидеть, что они всё больше становятся похожи на БД.
««Доступ не может быть быстрее, чем к файловой системе по определению.»» ---
А если БД установлена прямо на ЖД минуя ФС. То доступ может быть быстрее ?!
««(если только db не держит огромный кэш в памяти). Или SQL сам является частью системы.»» ---
В Cache они пишут что «не побайтная, а побитная оптимизация». И SQL там вроде как «фасад» то есть при получении запроса SQL, БД раскраивает запрос в свой «язык, алгоритм, программу», оптимизирует, кэширует и проч. SQL нужен чтобы донести задание, а далее БД не по SQLю живет. Вообще к Cache можно обратится «очень по разному» и SQL, как они говорят «только один ИЗ способов».
Все это общее мое рассуждение, за конкретными вещами обращайтесь к документации.
««> Или тогда где находится это file API Drupal ???
includes/file.inc
api.drupal.org
»» ---
спасибо, но чтобы там править надо хорошо внутреннюю структуру Друпала знать.
Пойду поищу модуль.
Комментарии
Операция не то, чтобы особо ресурсоемкая, просто не нужная.
1) БД предназначались совсем не для хранения файлов (стандартные), поэтому оптимизации нет.
2) Намного быстрее выйдет операция когда сервер отдает файл с жесткого, нежели вытаскивает его из БД
3) В БД файлы занимают больше места, чем на жестком. Тут на 100% не уверен, но несколько раз сталкивался.
Вывод - однозначно не стоит. Хотя, если БД какая-то особенная (то есть не MySQL, postgreSQL) - можно попробовать.
Просто есть много-много дискового места, и там стоит БД.
Но хостин к этому месту невозможен (причины) зато доступ из сети к БД пожалуйста.
Да и если все в БД хранить, то легко переносить сайты (туда сюда).
Вообще есть идея как хранить в БД «все» что отражает индивидуальность сайта (шаблоны, модули, локализации, навороты) а один двтижёк (Друпал) все бы это обслуживал.
Ага, запихиваем в БД php код, потом как надо - достаем его, исполняем ?
Хотя все гениальное порой вначале было бредом.
Идея бредовая
Ну да, размещаем Drupal в аккаунтах google-почты (gmail.com). Там много места дают и бесплатно. А что, плагин ведь есть, который почтовый ящик gmail в дополнительный диск превращает.
уже есть и прстейшая cms на основе google-mail
Блин, опять идею украли!
Воруют...(с) известно кто
Идея применима только в очень узком диапозоне,а так слишком много посредников, отсюда и большая стоимость(нагрузка или время сервера).
гогля не зря все в плоских файлах хранит.
======================================================
[url=http://wiki.drupal.ru]Документация[/url],[url=http://wiki.drupal.ru/doc/poleznye_ssylki_dlya_dizainerov]Дизайн[/url],[url=http://wiki.drupal.ru/doc/gotovye_perevody]Переводы[/url]
А ты на что надеялся? Чтоб идеи не крали, надо их флэшем защищать!

Грустно, когда не воруют(не интересно) или нечего воровать(исписался)
======================================================
[url=http://wiki.drupal.ru]Документация[/url],[url=http://wiki.drupal.ru/doc/poleznye_ssylki_dlya_dizainerov]Дизайн[/url],[url=http://wiki.drupal.ru/doc/gotovye_perevody]Переводы[/url]
И в базу складывать. "Иголка в яйце. Яйцо в утке. Утка в..."
Вообще есть идея как хранить в БД «все» что отражает индивидуальность сайта (шаблоны, модули, локализации, навороты) а один двтижёк (Друпал) все бы это обслуживал.
Насчет "один движок" - это мультисайтинг, который Drupal умеет. Вся "индивидуальность" собирается при этом в каталоге sites/имясайта, который не так уж и сложно переносить.
Мне пока нужно чтобы все информация заносимая пользователем через сайт хранилась в БД.
Пока только текст помещается в БД.
Как сделать так чтобы файлы и картинки, загружаемые пользователем, хранились в БД ???
Помогите я пока не представляю, как это сделать.
Ну помогите же, как грузить все файлы пользователя в БД ???
Насколько понимаю, для этого СУБД должна поддерживать тип BLOB (Binary Large Object) - Двоичный большой объект. Не уверен, что MySQL это может.
Может. Drupal их активно юзает, например в таблице locales_source поле source имеет тип blob.
Чтобы хранить файлы в БД, думю надо переписать file API Drupal. Может есть и проще решение.
Тады - ой!
А модуля нет подобного ???
Или тогда где находится это file API Drupal ???
Не по теме: есть такая БД Cache (широко известная в узких кругах) так в ней БЛОБы это чуть ли не основной тип данных, и рекомендации в описаниях БД хранить гигабайтное потоковое видео и аудио. Вроде даже доступ быстрее чем из файловой системы. Вообще я тоже склоняюсь что файловые системы умрут, все и вся будут обращаться и хранить в БД.
Доступ не может быть быстрее, чем к файловой системе по определению(если только db не держит огромный кэш в памяти). Или SQL сам является частью системы.
А тут вспоминается старая реприза: 'достаёт кошёлку, открывает кошёлку, достает сумочку, закрывает кошёлку открывает сумочку достает кошелек закрывает сумочку ....'
======================================================
[url=http://wiki.drupal.ru]Документация[/url],[url=http://wiki.drupal.ru/doc/poleznye_ssylki_dlya_dizainerov]Дизайн[/url],[url=http://wiki.drupal.ru/doc/gotovye_perevody]Переводы[/url]
> Или тогда где находится это file API Drupal ???
includes/file.inc
api.drupal.org
> Вообще я тоже склоняюсь что файловые системы умрут, все и вся будут обращаться и хранить в БД.
Любая файловая система является базой данных, только очень ограниченой. Если посмотреть на развитие ФС, то можно увидеть, что они всё больше становятся похожи на БД.
««Доступ не может быть быстрее, чем к файловой системе по определению.»» ---
А если БД установлена прямо на ЖД минуя ФС. То доступ может быть быстрее ?!
««(если только db не держит огромный кэш в памяти). Или SQL сам является частью системы.»» ---
В Cache они пишут что «не побайтная, а побитная оптимизация». И SQL там вроде как «фасад» то есть при получении запроса SQL, БД раскраивает запрос в свой «язык, алгоритм, программу», оптимизирует, кэширует и проч. SQL нужен чтобы донести задание, а далее БД не по SQLю живет. Вообще к Cache можно обратится «очень по разному» и SQL, как они говорят «только один ИЗ способов».
Все это общее мое рассуждение, за конкретными вещами обращайтесь к документации.
««> Или тогда где находится это file API Drupal ???
includes/file.inc
api.drupal.org
»» ---
спасибо, но чтобы там править надо хорошо внутреннюю структуру Друпала знать.
Пойду поищу модуль.
А если БД установлена прямо на ЖД минуя ФС. То доступ может быть быстрее ?!
Вообще-то база данных это тоже файл(ы) лежащий на жестком диске и установить БД минуя ФС невозможно. Почитай эту ссылку.
я же писал что это только мои домыслы.
но где то слышал что может.
А вот гибрид ФС и БД есть (вернее был) когдато у Sun.
Там был прямой доступ к полям(текстовым) в файле.