Где хранить большие данные постов в блоге - в файле или базе данных? - PullRequest
3 голосов
/ 11 августа 2010

Я занимаюсь разработкой одного веб-сайта блога, и мне было интересно, как сохранить большие данные в блоге - в файле XML, в виде файла HTML или непосредственно в базе данных.Любое предложение?

Ответы [ 4 ]

8 голосов
/ 11 августа 2010

База данных будет намного лучше. Итак, сохраните файл XML (или любой другой файл), вам нужно перезаписать все это. База данных позволяет вам добавлять / обновлять записи одновременно.

Не говоря уже о том, что БД легче искать, если вы ищете все записи в блоге с определенным словом или фразой ...

3 голосов
/ 11 августа 2010

Сообщение в блоге невелико. Изображения могут быть.

Некоторые вопросы:

  • Какую базу данных вы используете? Если вы используете MySQL (ick), вы, вероятно, захотите использовать TEXT (для <64K) или MEDIUMTEXT (для между 64K и 16M). </li>
  • Что вы подразумеваете под "XML"? XHTML - это XML. HTML5 имеет сериализацию XML.
  • Вы имеете в виду один файл на пост? Я предполагаю, что вы делаете.

Проблемы, которые вы можете рассмотреть:

Какие проблемы вы рассматриваете?

  • Производительность чтения: Быстрее ли извлечь файл из базы данных и затем прочитать файл, или просто извлечь данные из базы данных? Если вы храните все это в базе данных, вы пропускаете еще несколько системных вызовов. Вы также избегаете проблемы «большого количества маленьких файлов» (около 4 Кб), с которой плохо справляются большинство файловых систем.
  • Производительность записи: Может быть быстрее записать файл, чем записать в базу данных, просто потому, что база данных предоставляет гораздо больше гарантий (целостность транзакции). С другой стороны, вам все равно придется писать в базу данных, поэтому добавление большего количества файлов может означать больше запросов.
  • Издержки базы данных: Хранение большего количества данных в базе данных делает VACUUM ANALYZE более длительным.
  • Транзакции: Если запись в БД не удалась, транзакция не удалась. Если диск заполнится, обычная запись в файл будет частично завершена. Правильно ли ваш код обрабатывает это или просто сохраняет начало сообщения?
  • Удаление (относится к транзакциям): Вам также нужно помнить об удалении файла. Что если удалить файл не удастся? Что делать, если удалить строку не удалось?
  • Миграция: Вам нужно будет скопировать базу данных. Вы тоже хотите скопировать множество маленьких файлов?
  • Удобство доступа: Хотите изменить сообщения в текстовом редакторе?
  • Потерянные / отсутствующие файлы: Что делать, если есть сообщения без файлов или файлы без сообщений?
1 голос
/ 11 августа 2010

XML не является хорошим выбором, когда речь идет о сохранении / загрузке / сериализации / десериализации больших данных.я бы порекомендовал использовать базу данных.

1 голос
/ 11 августа 2010

Выберите один.

Я бы не советовал использовать HTML, так как в какой-то момент вы можете по-другому его отобразить, но у XML и БД есть свои плюсы и минусы. Файлы XML, если вы имеете в виду по одной записи на файл, легко переносимы, легко редактируются и т. Д. Хранилище БД легче искать и извлекать, а немного с меньшей вероятностью случайно удалить.

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