Journal    Friends    Archive    User Info    memories
 

St. Hell - Оптимизация DB


22 Июн, 2006 19:43 Оптимизация DB

Не рекомендую читать всё, что написано ниже ^_^

Всё-таки решил использовать persistent (постоянные т.е.) соединения для форума. По-сути противопоказаний вроде нету, а именно противопоказаниями являются блокировки таблиц, а так же использование транзакций. Ни того, ни другого в форуме у нас нету. Зря, скорей всего, но... А использование persistent соединений позволяет съэкономить на соединениях с бд, всё-таки это тоже не бесплатная операция. Короче, сейчас форум в таком режиме и работает, livejournal, кстати, тоже использует persistent соединения. Еще он использует отложенные вставки в базу данных, но на форуме опять же это приводит к большим побочным эффектам. Для тех, кто не в курсе поясню, delayed вставки срабатывают не сразу, а кладутся в очередь, и, когда база свободна от каких-либо других действий, либо когда пройдет какое-то время, либо когда накопится определенное количество вставок они и выполняются, естественно, когда вставок много (а к форуму это относится), то и выигрышь значительный. Когда вставок мало, выигрыша нету и эффект может быть прямо противоположным, структура форума, к сожалению, не позволяет этого нормально сделать, я попробовал на час поставить такой режим, так сразу стали писать, что приходят письма без содержания, т.е. просто напросто письмо записывается сразу в нескольих таблицах, заголовок в одной, содержание в другой и из-за задержки содержание вставляется позже... Т.е. при такой структуре баз данных помогли бы транзакции, но... Короче, как ни анализирую структуру базы на форуме прихожу к тому, что сделано очень хорошо для маленького форума и неприемлемо для большого, но и переделать что-то отдельно почти не представляется возможным.

Два раза встречал в интернете мнение, что простое преобразование MyISAM в InnoDB в случае форума на IPB сильно снижает нагрузку на базу данных и уменьшает количество дисковых операций, но мои опыты в этом направлении всегда показывали противоположные результаты, однако я еще буду пробовать это сделать, всё-таки сейчас условия несколько изменились относительно того времени, и, возможно, ограничивающие факторы тоже уже не те.

Метки:

Оставить комментарийPrevious Entry Add to Memories Tell A Friend Track New Comments Next Entry

Comments:

От:[info]taiko
Дата:Июнь, 22, 2006 20:26 (UTC)
(ссылка)
посмотри парочку тем в разборкак, хехе, нехило базу колбасило. обе темы от иммортал, а первые посты в них от других авторов.
От:[info]drozang
Дата:Июнь, 22, 2006 20:50 (UTC)
(ссылка)
Одна из них вообще сначала пустой стояла. Только название.
От:[info]kernel
Дата:Июнь, 22, 2006 22:23 (UTC)
(ссылка)
Это и понятно, так же, в ipb_topics запись добавилась, а в ipb_posts далеко не сразу добавилась. Это абсолютно предсказуемо, ipb_posts постоянно работает, да и вообще очень большая таблица, поэтому и заносить туда данные быстро не получается, а если быстро не получается, то они откладываются в очередь.
От:[info]kernel
Дата:Июнь, 22, 2006 22:19 (UTC)
(ссылка)
Хе, круто, ну, эффект ожидаемый, точнее легко предсказыемый ^_^