Почему форумы хранят сообщения в базе данных? - PullRequest
3 голосов
/ 29 мая 2011

Взглянув на то, как некоторые программы для форумов хранят данные в базе данных (например, phpBB использует базы данных MySQL для хранения практически всего), я начал задумываться, почему они так поступают?Разве это не может быть так же быстро и эффективно использовать ... может быть, xsl с xslt для хранения тем и сообщений на форуме?Или хотя бы хранить посты в теме?

Ответы [ 4 ]

8 голосов
/ 29 мая 2011

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

Ссылочная целостность

Индексы и эффективный поиск

SQL Joins

Вот еще пара сообщений, на которые вы можете посмотреть для получения дополнительной информации:

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

Зачем использовать MySQL поверх плоских файлов?

Зачем использовать базу данных SQL?

4 голосов
/ 29 мая 2011

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

3 голосов
/ 29 мая 2011

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

В противном случае, если вы хотите выполнить поиск, это гораздо быстрее сделать в базе данных, чем сканированиевсе файлы.

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

1 голос
/ 29 мая 2011

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

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

Сочетание статического кэширования с реляционным хранилищем БД обеспечивает лучшее из обоих миров.

...