Вы в основном архивируете двоичные данные и не обслуживаете их, лучше ли хранить их как BLOB в MySQL или на S3? - PullRequest
2 голосов
/ 24 августа 2011

У меня есть приложение, в котором клиенты загружают файлы, такие как Powerpoints и электронные таблицы Excel, в приложение через веб-интерфейс. Затем файлы имеют метаданные, связанные с ними, и они хранятся в виде больших двоичных объектов в базе данных MySQL. Пользователи могут загружать эти файлы время от времени, но не очень часто. Акцент здесь делается на архивирование. Безопасность данных также важна.

Если это так, каковы преимущества и недостатки хранения файлов в качестве больших двоичных объектов в MySQL по сравнению с размещением их на Amazon S3? Я никогда не использовал S3 раньше, но слышал, что он популярен для хранения файлов.

Ответы [ 4 ]

1 голос
/ 14 января 2012

Я храню данные в S3 в течение многих лет, и мне это очень нравится!Я загружаю файл на S3 (кстати, его скопировали несколько раз), а затем сохраняю ссылку на путь и имя файла в моей таблице файлов MySQL.Во всяком случае, для этого требуется большая нагрузка на базу данных MySQL, и теперь S3 предлагает шифрование AES256 бит с вращающимися мастер-ключами, чтобы вы знали, что это безопасно!

1 голос
/ 24 августа 2011

Основным преимуществом реляционных баз данных (таких как MySQL) является элегантность, позволяющая запрашивать данные. Однако столбцы BLOB предлагают очень мало с точки зрения расширенной семантики запросов по сравнению с другими типами столбцов, поэтому, если это ваш основной вариант использования, вряд ли есть какая-либо причина использовать реляционную базу данных вообще, она не предлагает намного больше, чем просто обычная файловая система или простое хранилище данных со значением ключа (например, s3).

Доллары в байтах, s3, вероятно, намного более экономически эффективен.

С другой стороны, есть кое-что, что может принести реляционная база данных, и это было бы нереально. Наиболее очевидной является семантика транзакций (только на движке InnoDB, недоступная в MyISAM), так что вы можете безопасно знать, что целые группы загрузок или модификаций происходят согласованно. Еще одним преимуществом является то, что вы все еще можете добавлять метаданные о своих BLOB-объектах (даже если это только со временем, поскольку ваше приложение улучшается), так что вы все равно можете воспользоваться некоторыми из богатых запросов, поддерживаемых MySQL.

1 голос
/ 24 августа 2011

Безопасность данных также важна.

Обратите внимание, что файлы на S3 не хранятся на зашифрованных дисках, поэтому перед отправкой может потребоваться шифрование на стороне клиента или на ваших серверах.это до S3.

1 голос
/ 24 августа 2011

хранение двоичных данных в blob

  • делает вашу базу данных толстой
  • ограничение размера (преодолено в более поздней версии в mysql)
  • переносимости данных нет(вам нужен MySQL API / клиент для доступа к данным)

нет true безопасность

Если вы архивируетедвоичные данные,
сохраняемые в обычный файл на диске

Если безопасность важна,
учитывайте разделение между вашим UI-сервером и сервером хранения,
, но трудно архивировать,

Вы всегда можете встроить пароль / шифрование в эти двоичные файлы.

безопасность по сравнению с amazon s3

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