Что может быть лучшей практикой для хранения больших данных

#mysql #rdbms #database

#mysql #rdbms #База данных

Вопрос:

Я работаю над проектом, в котором мне нужно синхронизировать RSS-канал с URL-адресом, указанным пользователем. Затем покажите содержимое канала в нашем css на странице пользователя. Существует мобильный сайт, поэтому я не хочу синхронизировать снова и снова, когда пользователь открывает мобильный сайт по соображениям производительности. Мне нужно сохранить содержимое в каком-либо хранилище. Что может быть лучшим хранилищем для хранения таких больших данных (данные могут быть большими на основе содержимого RSS-канала). Я использую СУБД MySQL. Могу ли я хранить эти данные в базе данных или мне следует использовать файловую систему или какой-либо другой носитель данных, доступный для этих типов данных. Что должно быть лучшей практикой, поскольку база данных пользователя может быть слишком большой.

Ответ №1:

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

  • Если у вас большое количество файлов, вам нужно будет разделить их на отдельные каталоги, если вы используете файловую систему.
  • MySQL позволяет выполнять репликацию на несколько серверов, если вам нужна балансировка нагрузки.
  • Вам не нужен отдельный код поиска файлов, когда вы можете получить файлы непосредственно из базы данных с помощью того же запроса, который вы получаете, другие результаты.

Для очень больших объемов файлов вы можете изучить распределенные файловые системы. Я использовал и любил MogileFS, но есть и много других доступных. Они позволяют вам распространять ваши файлы на столько серверов, сколько вам нравится, и гораздо более устойчивы к отказам, чем другие решения.

Комментарии:

1. Если я продолжу работу с СУБД mysql, столбцы типа text позволят мне хранить большой объем данных? Могу ли я гарантировать, что в будущем не возникнет никаких проблем с потерей данных?

2. Вы должны использовать тип столбца BLOB (двоичный большой объект) для двоичных файлов, таких как изображения. Они предназначены для хранения файлов и не должны приводить к потере данных.

3. на самом деле данные не состоят из каких-либо изображений, данные могут быть html или css, используемыми на сайте, rss-канал которого доступен для анализа и обработки. Может ли blob-объект по-прежнему быть правильным решением для этого

4. Верно, я понятия не имею, откуда у меня возникла идея, что ваши данные являются изображениями. 🙂 Разница между ними заключается в том, что большие двоичные объекты не имеют наборов символов. Наличие одного для текстовых данных может быть хорошей идеей, поэтому я рекомендую вам использовать ТЕКСТОВЫЕ поля.