Должен ли я хранить значения в базе данных или в XML или текстовом файле? - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть несколько простых вопросов о хранении данных на веб-сайте, который я разрабатываю.Рассматриваемый сайт предоставит пользователям пространство личного профиля, которое они могут настраивать с помощью текста, изображений, BB-кода и т. Д.Эти профили будут иметь ограничение на количество символов около 5000. Мне было интересно, как лучше хранить эти данные, так как они кажутся большими в базе данных.

Я думал о том, чтобы использовать простые текстовые файлы для хранения данных и присвоить им имена пользователей.Как вы думаете, что будет лучше для скорости доступа и записи, и это уменьшит производительность чтения / записи базы данных;По мере просмотра и обновления профилей будет большая часть сайта.

Спасибо, ребята.Я с нетерпением жду вашего мнения.

Ответы [ 4 ]

2 голосов
/ 27 сентября 2011

Я бы пошел на хранение их в базе данных, потому что:

  1. Все данные в базе данных могут использовать транзакции для обеспечения согласованности материала;
  2. Для одной вставки (транзакции) потребуетсязаботиться обо всех ваших потребностей хранения;
  3. Один выбор извлечет все данные;
  4. Сделайте резервную копию базы данных, и все готово;
  5. Если вы столкнетесь с медлительностью, настроить схему «ведущий-ведомый» или создать разделы легко;
  6. Вы можете использовать инструменты базы данных для поиска в данных;

С другой стороны, если вы используете файловую систему:

  1. файловые системы не имеют транзакций, что происходит в случае сбоя вставки, и вам необходимо выполнить откат, файл имеетуже был сохранен;
  2. что произойдет, если файловая система не синхронизируется с базой данных?
  3. Это усложняет ваш код, добавляя к ошибке давление;
  4. Запись в файловую систему добавляет дополнительную дыру в безопасности, поскольку ваше DB-приложение теперь может записывать и, возможно, перезаписывать существующие файлы в файловой системе.

В целом
Использование файловой системы используется, поскольку хранение больших двоичных объектов в БД может быть медленным.
Однако оптимизировать не следует, пока не установится медлительность. Premature optimization is the root of all evil.
Медлительность может никогда не быть проблемой, и кроме того, вы также можете провести большую оптимизацию в БД.

2 голосов
/ 27 сентября 2011

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

2 голосов
/ 27 сентября 2011

Если вы уже используете базу данных, ее будет гораздо проще хранить там. 5000 символов это ничто. Производительность кажется здесь неуместной.

1 голос
/ 27 сентября 2011

Связана ли информация профиля каким-либо образом с существующей информацией базы данных? Является ли структура информации профиля полностью регулярной, или пользователь имеет некоторую степень контроля над структурой своего профиля? Сколько пользователей у вас будет?

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

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

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