| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Где сохранять картинку в БД или на диске? |
| Автор: Royan 6.7.2006, 23:39 |
| Вопрос таков. Я пишу ленту новостей (на PHP, поэтому вопрос сюда). Каждой новости будет соответствовать картинка. Небольшая – меньше 100Кб. Следует ли эту картинку сохранять в БД или же следует ее сохранять как файл на диске а в БД держать только ее название? Почему это меня беспокоит, потому что если сайт будут дергать часто, то пока эти картинки будут "отдаваться" сервером БД будет проходить время + собственно увеличение трафика сервера БД. Что посоветуете? |
| Автор: RoDeX 7.7.2006, 01:17 |
| Без всяческих вопросов и лишних мыслей знай и помни - картинки всегда надо хранить В ФАЙЛАХ... |
| Автор: Endeveit 7.7.2006, 15:46 |
| Royan, я за файлы. А вообще делай как тебе удобно, разницы особой нет. И там и там свои плюсы и минусы. Навскидку: + БД: При удалении новости не надо лезть базу и предварительно взяв имя картинки, удалять её и только потом саму новость; + Файлов: Просто моё личное мнение о том, что не надо пихать в базу всё подряд. "+" бд с удалением легко обходится путём написания демона, который будет удалять файлы, сведений о которых нет в базе, раз в определённый промежуток времени. |
| Автор: BobiKK 7.7.2006, 16:08 |
| Вообще, может я и не прав, но скорость, как козырь MySQL, достигается только при работе с текстом. |
| Автор: Kefir 7.7.2006, 17:46 |
| Я обычно храню в файлах. Однако недавно в проекте в одном сделал в базе, т.к. нужна была синхронизация данных (и файлов тоже) на разных серверах. Очень добно - мускульная синхронизация сделала всё за меня. С файлами пришлось бы писать код для синхронизации файлов. |
| Автор: Royan 7.7.2006, 22:19 |
| Окей я понял, думаю будут лежать в файлах. Всем спасибо. |
| Автор: skyboy 7.7.2006, 23:31 |
| Royan, минус "базового" варианта: если надо поменять местами(мало ли?!) картинки, придётся перебрасывать всё содержимое BLOB-полей, а если в базе только имя файла, то только строка и будет перебрасываться. И ещё: если(это не к новостям, а к подходу как к таковому) у тебя будут связи многие-к-одному? То в базе придётся хранить несколько копий одной и той же картинки! А при работе только с именем файла - будет значительная экономия. |
| Автор: mrbig66 14.7.2006, 14:58 |
| Если картинки должны быть доступны не всем, а только определенным лицам, то можно хранить в БД. Но лучше в БД хранить инфу о картинках, а картинки, как файлы. И еще... Представь себе какой у тебя дамп БД получится, упадешь. |
| Автор: BobiKK 14.7.2006, 15:20 |
| А потом этот дамп восстанавливать... Нечайно сменить кодировки... |