Вопрос

У меня есть веб -приложение, которое в настоящее время разрабатывается в JSP/Servlets.
Приложение позволяет пользователям загрузить Файлы изображений для каждой учетной записи пользователя.

Как лучше всего хранить изображения?
Пожалуйста, рассмотрите следующие функции, которые я хотел бы получить до вашего ответа;

  1. Сейчас я использую MySQL, но может быть возможность перейти в другую базу данных.

  2. Я могу сохранить изображения в виде плоских файлов, но я хочу admin учетная запись, чтобы иметь возможность Резервное копирование полной базы данных и перезагрузить его позже. В идеале резервная копия/перезагрузка также должна работать с изображениями. (Даже если резервная копия была сделана с другой физической машины, а перезагрузка была сделана с другой машины)

  3. Использование Blob/Clob - это вариант, который решает задачу 2.
    Но, Что если моя база данных станет очень большой?

Это было полезно?

Решение

Храните их в файловой системе. Это быстрее и проще. Часто при доступе к изображению вам все равно придется сохранить его в файл, прежде чем вы сможете его использовать. Вы можете изучить изображения с помощью сторонних инструментов. Вы можете сохранить RecordID в имени файла, чтобы удержать Ассоциацию изображений/записи когда -либо разбито.

Многие другие делятся этим мнением: http://forums.asp.net/p/1512925/3610536.aspx

Другие советы

В вашем случае я настоятельно рекомендую вам иметь blob Поле в вашей базе данных и храните в ней изображения. В основном, потому что это является правильное место для них. Итак, сделайте сервлет, который извлекает изображение указанного пользователя из базы данных. Например, /userimage?name=john.

О вашей проблеме "размер/производительности":

  • Базы данных были сделаны (среди прочего) для хранения и обмена Большие объемы данных.
    Так, Они лучший вариант.

  • Даже если вы храните их на других сайтах, они все равно будут сокращать свободное пространство и производительность.

  • если ты В самом деле Хотите управлять большими данными (> = 3TB, а не в вашем случае), тогда вы можете сохранить их в файловой системе и сохранить имена файлов в БД. Для получения дополнительной информации, посмотрите на этот вопрос.

Просто храните их в БД ... если ваша пользовательская база "станет очень большой", у вас будут ведра с наличными, чтобы купить сервер базы данных с шариками (или даже их ферма), которые могут обрабатывать нагрузку, теперь выигранный ' ты?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top