Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форум. Где лучше хранить сообщения.
 
 автор: Dune   (04.09.2007 в 23:00)   письмо автору
 
 

Досталась поддержка одного проекта.
Струrтура тамошнего форума основана на Mysql, а сообщения хранятся в файлах.
Это хорошо - размер база данных снижается её работа увеличивается (нет текcтовых полей).
Но из-за загрузки множества файлов страница с сообщениями (особенно лента последних сообщений) создаётся сравнительно долго.
Проблема пока устраняется кешированием. Но если сообщения будут поступать гораздо чаще - эффективность кеширования снизится.

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

Хотелось бы узнать мнение участников форума?

   
 
 автор: Trianon   (04.09.2007 в 23:10)   письмо автору
 
   для: Dune   (04.09.2007 в 23:00)
 

Сколько следует просмотров в минуту ?
Сколько следует добавлений в минуту ?
Каков общий объем форума?
Каков объем форума активной (неархивной) части форума?

   
 
 автор: Dune   (04.09.2007 в 23:33)   письмо автору
 
   для: Trianon   (04.09.2007 в 23:10)
 

На текущий момент немного. Даже мало. Не более 50 в час.
Форум литературный litkonkurs.ru - достался в наследство в довольно убожеском виде.
Размер базы данных более гигабайта, половина из них мусор.
Активных тем в день обычно не более 50-ти.

И даже при таких слабых нагрузках подвисает при отображении ленты форумов.
Откешированный - взлетает.

А вот когда нагрузка увеличится...

И даже без привязки к конкретному проекту есть какие-нибудь рекомендации?

   
 
 автор: cheops   (05.09.2007 в 09:52)   письмо автору
 
   для: Dune   (04.09.2007 в 23:33)
 

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

   
 
 автор: Artem S.   (04.09.2007 в 23:33)   письмо автору
 
   для: Dune   (04.09.2007 в 23:00)
 

> Это хорошо - размер база данных снижается её работа увеличивается (нет текcтовых полей)

Cпорно. Какая разница хранить сообщение в файле (место на диске), либо в базе (то же место на диске)
Какая "быстрая" работа нужна с базой, если в ней нет текстовых полей? Если, например, подсчет кол-во ответов в теме, то скорость не будет зависеть от размера таблицы. Еще что?

   
 
 автор: Dune   (04.09.2007 в 23:39)   письмо автору
 
   для: Artem S.   (04.09.2007 в 23:33)
 

Очень хорошо. Всё больше убеждаюсь в изменении работы форума.

   
 
 автор: Dune   (04.09.2007 в 23:48)   письмо автору
 
   для: Artem S.   (04.09.2007 в 23:33)
 

О месте на диске поспорю: текстовый файл считывается целиком, а в базе текстовый массив хранится в общей куче (файл скорее всего фрагментирован) - его извлечение требует времени.

   
 
 автор: ec_stasis   (05.09.2007 в 01:28)   письмо автору
 
   для: Dune   (04.09.2007 в 23:48)
 

Если сервер на Linux'e, то файловая система ext2/3, следовательно файл не фрагментирован.

   
 
 автор: Trianon   (05.09.2007 в 02:02)   письмо автору
 
   для: ec_stasis   (05.09.2007 в 01:28)
 

>Если сервер на Linux'e, то файловая система ext2/3, следовательно файл не фрагментирован.

поразительный ход мысли.

Почему "Если сервер на Linux'e, то файловая система ext2/3"?

Вот я, например, предпочитаю reiserfs.

И почему "Если...файловая система ext2/3, [то] файл не фрагментирован."?

Я знаю лишь одну файловую систему, у которой файлы были не фрагментированы по определению.
Была такая ОС RT-11 лет 20-25 назад.... Работать с ней было сущее мучение.

   
 
 автор: Dune   (05.09.2007 в 00:17)   письмо автору
 
   для: Dune   (04.09.2007 в 23:00)
 

Другое дело если для MySQL это один запрос (индексированные строки хранятся в большом файле, MySQL разбирается по своему как хочет), а с другой стороны 50 циклов чтения файлов с жёсткого диска средствами PHP.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования