|
|
|
| Досталась поддержка одного проекта.
Струrтура тамошнего форума основана на Mysql, а сообщения хранятся в файлах.
Это хорошо - размер база данных снижается её работа увеличивается (нет текcтовых полей).
Но из-за загрузки множества файлов страница с сообщениями (особенно лента последних сообщений) создаётся сравнительно долго.
Проблема пока устраняется кешированием. Но если сообщения будут поступать гораздо чаще - эффективность кеширования снизится.
Думаю рассмотреть вопрос хранения файлов сообщений в базе. Либо гибридный метод в зависимости от загрузки каждого форума.
Хотелось бы узнать мнение участников форума? | |
|
|
|
|
|
|
|
для: Dune
(04.09.2007 в 23:00)
| | Сколько следует просмотров в минуту ?
Сколько следует добавлений в минуту ?
Каков общий объем форума?
Каков объем форума активной (неархивной) части форума? | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 23:10)
| | На текущий момент немного. Даже мало. Не более 50 в час.
Форум литературный litkonkurs.ru - достался в наследство в довольно убожеском виде.
Размер базы данных более гигабайта, половина из них мусор.
Активных тем в день обычно не более 50-ти.
И даже при таких слабых нагрузках подвисает при отображении ленты форумов.
Откешированный - взлетает.
А вот когда нагрузка увеличится...
И даже без привязки к конкретному проекту есть какие-нибудь рекомендации? | |
|
|
|
|
|
|
|
для: Dune
(04.09.2007 в 23:33)
| | Лучше переводить на MySQL - в ней кэшируются только индексы - поэтому обновление кэша происходит медленно, файловый буфер может обновляться очень часто, так как файлы кэшируются целиком. | |
|
|
|
|
|
|
|
для: Dune
(04.09.2007 в 23:00)
| | > Это хорошо - размер база данных снижается её работа увеличивается (нет текcтовых полей)
Cпорно. Какая разница хранить сообщение в файле (место на диске), либо в базе (то же место на диске)
Какая "быстрая" работа нужна с базой, если в ней нет текстовых полей? Если, например, подсчет кол-во ответов в теме, то скорость не будет зависеть от размера таблицы. Еще что? | |
|
|
|
|
|
|
|
для: Artem S.
(04.09.2007 в 23:33)
| | Очень хорошо. Всё больше убеждаюсь в изменении работы форума. | |
|
|
|
|
|
|
|
для: Artem S.
(04.09.2007 в 23:33)
| | О месте на диске поспорю: текстовый файл считывается целиком, а в базе текстовый массив хранится в общей куче (файл скорее всего фрагментирован) - его извлечение требует времени. | |
|
|
|
|
|
|
|
для: Dune
(04.09.2007 в 23:48)
| | Если сервер на Linux'e, то файловая система ext2/3, следовательно файл не фрагментирован. | |
|
|
|
|
|
|
|
для: ec_stasis
(05.09.2007 в 01:28)
| | >Если сервер на Linux'e, то файловая система ext2/3, следовательно файл не фрагментирован.
поразительный ход мысли.
Почему "Если сервер на Linux'e, то файловая система ext2/3"?
Вот я, например, предпочитаю reiserfs.
И почему "Если...файловая система ext2/3, [то] файл не фрагментирован."?
Я знаю лишь одну файловую систему, у которой файлы были не фрагментированы по определению.
Была такая ОС RT-11 лет 20-25 назад.... Работать с ней было сущее мучение. | |
|
|
|
|
|
|
|
для: Dune
(04.09.2007 в 23:00)
| | Другое дело если для MySQL это один запрос (индексированные строки хранятся в большом файле, MySQL разбирается по своему как хочет), а с другой стороны 50 циклов чтения файлов с жёсткого диска средствами PHP. | |
|
|
|