| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Где лучше хранить файлы? |
| Автор: stmamont 19.3.2006, 22:56 |
| Где лучше хранить файлы? В БД или на сервере. Предполагается очень большое количество файлов, разных размеров. БД: MySQL && Oracle Лично мне нравится больше идея хранения файлов в БД. Но что насчет производительности БД? Как обычно решается такой вопрос? |
| Автор: B2_Russia 19.3.2006, 23:53 |
| Думаю тут нужно больше узнать о задаче. Например, если планируется массовые операции над этими файлами (редактирование), то я бы советовал хранить их на диске, а в базе хранить только пути ессно... Производительность определит структура самой БД |
| Автор: stmamont 19.3.2006, 23:57 |
| Данные - любые, фото , видео, документы ворда. Обновляться будут редко(чаще удаляться чем обновляться), несколько пользователей. Добавляться новые файлы будут часто. |
| Автор: B2_Russia 20.3.2006, 00:07 |
| Я бы хранил вне базы, и БД была бы легче (по объему) и файлики под рукой (хоть это и не требуется). |
| Автор: boevik 20.3.2006, 08:48 |
| Если БД на сервере и хранить файлы на диске сервера, то надо дать доступ к серверу, через sharing или другим методом, Кроме базы надо бекапить и файлы. Все это добавляет работы по поддержке сервера. И с точки зрения security, не приветствуется возможность прямой записи на сервер. |
| Автор: stmamont 20.3.2006, 09:42 |
| Вопрос security важен. Именно поэтому не хочется хранить файлы на сервере... Помню под ораклом делал именно что б в бд хранились... А вот с Mysql не понятно. Сколько файлов или какой размер она потянет? А если реализовывать так чтоб файлы были на сервере, то как это реализовать? Всмысле, файлов много. Все в одну папку не покидаешь... В разные папки значит. Имена присваивать = id записи которой файлы принадлежат... Как то криво когда файлы на серваки. |
| Автор: LSD 20.3.2006, 10:50 | ||
Если данные хранить не в blob-ах, а в виде файлов. То тогда, тебе нужно организовывать файл сервер, или FTP или еще как, и тогда безопасность уже определяется им. В качестве имени можно использовать тот же ID. Справится или нет MySQL не знаю (надо спросить в топике по нему), но есть компромистный вариант. Документы можно хранить в БД (они не такие уж и большие), а вот видео и т.п. вещи вынести в файлы. |
| Автор: stmamont 20.3.2006, 11:47 |
| Зачем организовывать файл сервер?? Мне нужно чтоб файлы были открыты только определенным пользователям. И список этих пользователей будет постоянно меняться Думаю надо закрыть доступ в папку с файлами извне. Дальше - сделать скрипт, который будет выдавать файлы. Сложность может возникнуть при попытке докачки или многопотоковой закачке. Или с помощью файл сервера все это можно реализовать и гораздо проще??? И если да, то как?) |
| Автор: stmamont 20.3.2006, 17:08 |
| Сейчас смотрю в сторону PgSql. Думаю можно в ней хранить файлы, без последующих проблем. Что скажете? |
| Автор: LSD 20.3.2006, 21:10 | ||
Это конечно все реализуется настройками сервера, вопрос только в том как ими управлять и идентифицировать пользователей. Честно говоря как пользователей БД, прикрутить к файл серверу не знаю. |
| Автор: beroal 21.3.2006, 10:55 |
| Я думаю, что MySql в вопросе хранения файлов в самой базе не имеет никаких недостатков перед PostreSql. Единственный недостаток для обеих (а точнее, недостаток самого принципа) - то, что передаваемый файл будет выдаваться скриптом, следовательно, все данные будут перекачиваться через PHP. Это шибко замедляет работу. Но если сайт не рассчитан на большую нагрузку, тогда беспокоиться не о чём. Хранить файлы в базе гораздо проще, чем на диске. Отпадают такие проблемы: 1) удалять файл, когда удаляется запись, а также по причине сбоев скрипта неудалённые файлы; 2) морока с правами на запись в специальный каталог (бывает такая фигня, что файлы, например, подброшенные в этот каталог через ftp, PHP перезаписать не может); 3) бэкап файлов вместе с бэкапом базы. |
| Автор: beartamer 21.3.2006, 11:16 |
| Файлы надо хранить в CVS или аналогах (SVN) |
| Автор: stmamont 21.3.2006, 12:55 |
| Предполагается большая нагрузка сайта. Только определился хранить файлы в бд... Неужели сильно замедлит скачивание файла отдача через скрипт? Если да, то как это можно обойти? |