Быстрый, легкий и стабильный форум

!ataMAN

Guest
Быстрый, легкий и стабильный форум

Я решил склепать простенький, но быстрый и выносливый форум с парой фишек. С самого начала я почему-то не ставил под сомнение, что в данном случае файлы использовать выгоднее, чем бд. В одном файле хранить одну страничку топика. При запросе просто выдавать файл. При изменении использовать flock. Новые файлы раскидывать по дереву директорий примерно по N штук в одну (вот и первый вопрос: Какое N лучше? Два, думаю, в данном случае - плохое решение?). Примерно - потому что топики будут удаляться, но не очень часто, так что следить за этим, думаю, не обязательно (второй вопрос: Грозит ли это чем-нибудь?).

Но вот главный вопрос, который я недавно задал себе: Чем грозит возникающая при активной жизни такого форума сильная фрагментация данных? Как проблемы фрагментации решаются в популярных СУБД?

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

-
спсб
 

Falc

Новичок
!ataMAN
Если ты хочешь простенький форум то лучше делай на мускуле.
 

Alexandre

PHPПенсионер
а не проще-ли взять готовый вариант,;)

быстро надежно и элегантно!!! www.phpBB.com

есть маленькое неудобство - надо будет перевести массу шаблонов.
 

cetb

Guest
Re: Быстрый, легкий и стабильный форум

У меня тоже были написаны форумы. (или скорее попытки его написать).. - Потом я все-таки бросил эту идею.

Писал в 2-ух вариантах:

1. Первый вариант, похож на этот форум.
Где ответ последует за ответом (в отличие от немного другой структуры древо подобного форума)

Сколько я не проверял БД мойЭСКЬЭЛ , все-равно скорость базы данных выше, и эффективнее файловой системы при нагрузке на сервак. Нужно уметь правильно использовать БД.
(Запрос с соединениями таблиц и др.).

2. Если форум имеет древовидную структуру, мое мнение нужно пользоваться только проиндексированными БД.
Самый оптимальный способ для древовидных структур..

Не буду вникаться в алгоритм работы таких форумов.- Отдельная тема..

В коце-концов я пришел к заключению , лучше юзать готовые форумы.
 

!ataMAN

Guest
Frol
Почему файлы?
плюсы:
Во-первых нигде не висит никакой сервер бд :)
Во-вторых не тратиться время на конекты, ну можно иногда заметить транспортные расходы, обединение найденных строк еще и из нескольких таблиц, копирование их в пхп скрипт...
Конечно это все переоптимизировано и проверено, но все же простая отдача файла, даже без вызова пхп-скрипта - получше...

Alexandre
я тоже не люблю изобретать велосипеды, но в данном случае мне нужен всего лишь самокат, но с одной "штучкой", которую обычно к самокатам не приделывают

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

fixxxer

К.О.
Партнер клуба
!ataMAN
ну тогда возьми sqlite и напиши для него "прослойку" - для того же пхпбб ;)
 

Falc

Новичок
!ataMAN
Есть подозрение что написаная тобой на ПХП работа с файлами будет медленее чем работа с файлами написаная разработчиками MySQL на Cи.
 

!ataMAN

Guest
Falc
да, но на форуме основная нагрузка ложится на селект, а я думаю, что апач тоже неплохо файлы читает
 

!ataMAN

Guest
Falc
бд по индексам будет собирать страничку из разных строк разных таблиц
а я создам структуру директорий и буду кидать в каждую, например, по 16 файлов(в каждом - готовая страничка топика) и 16 новых директорий и т.д; путь к файлу легко вычисляется из номера топика и страницы

вот вопрос?
 

crocodile2u

http://vbolshov.org.ru
По-моему, отказываться от преимуществ БД ради сомнительной выгоды типа "нагрузка идет только на сервер", да еще создавать на серваке структуру директорий и мучиться потом с правами доступа - идея не больно-то хорошая
 

Falc

Новичок
!ataMAN
Ты же хотел простой форум.

Как ты будешь поступать при редактировании сообщения?
А как ты будешь выводить 20 страницу темы?
 

crocodile2u

http://vbolshov.org.ru
Originally posted by !ataMAN
Falc
бд по индексам будет собирать страничку из разных строк разных таблиц
а я создам структуру директорий и буду кидать в каждую, например, по 16 файлов(в каждом - готовая страничка топика) и 16 новых директорий и т.д; путь к файлу легко вычисляется из номера топика и страницы

вот вопрос?
То есть БД ты все-таки используешь? ЗАЧЕМ тебе тогда понадобились файлы? почему 16? почему 16 новых директорий? Что значит "готовая страничка топика"
 

cetb

Guest
Если сложных запросов к БД не будет , можно и в файлах хранить данный...

Но я думаю, что исключает деревовидные форумы... Там структура немного другая.. Требует все-равно БД.

Хотя ваша БД скорее виснет по вине админа или при неправильномо построени БД запросов.

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

Silya

Guest
Автор оригинала: Falc
!ataMAN
А как ты будешь выводить 20 страницу темы?
Так например можно задать максимальное количество сообщений в файле и при необходимости уже создавать файл со 2-й, 3-й ... n-ой страницами форума и соответсвенно их выводить.

А вообще для маленького форума с файлами как раз нормально будет...скорее всего%)
 

Falc

Новичок
Silya
>>Так например можно задать максимальное количество сообщений в файле и при необходимости уже создавать файл с 1-й, 2-й ... страницами форума и соответсвенно их выводить.


И переписывать все файлы при удалении одного сообщения?
Может проще сделать на БД и не думать о подобных вещах?
 

crocodile2u

http://vbolshov.org.ru
Silya - слушай Falc'а

-~{}~ 25.03.04 18:38:

!ataMAN - и ты тоже.

Ну зачем наживать геморрой?
 

Silya

Guest
Falc
я так подозреваю что человек делает форум не масштаба phpclub forums %)
и если там будет например 10 сообщений в месяц публиковаться то проблем с этим не будет геморроя тоже%)
 

Falc

Новичок
Silya
Если там будет такое кол-во сообщений, то какой смысл говорить о нагрузке?

На мускуле сделать форум будет гораздо проще.
 
Сверху