Дано: Сайт с большим количеством посетителей, обновляется раз-два в сутки. Объём преимущественно текстовой информации примерно 40Мб (или больше). Объём обновлений в "сыром" виде около 3Мб в день.Варианты:
1 - Страницы вытаскиваются скриптом из MySQL.
2 - Страницы вытаскиваются скриптом из БД на плоских файлах.
3 - Куски страниц компилируются раз в день скриптом, окончательный вывод с помощью SSI
4 - Страницы почти полностью статические. Компилируются скриптом раз в день.Пока мне кажется оптимальным вариант 3. В этом случае и на диске место не тратится чрезмерно, и достаточно быстро всё работать будет. Вот только не знаю, как загрузят сервер 40 инструкций #include на каждой странице (включение текстовых файликов, не скриптов)? Вариант 4 отпал из-за утроения объёма сайта... А вот варианты 1 и 2 я прсчитать не могу - практики не хватает...
Что посоветует уважаемый ALL?
> 1 - Страницы вытаскиваются скриптом из MySQL.
> 2 - Страницы вытаскиваются скриптом из БД на плоских файлах.
> 3 - Куски страниц компилируются раз в день скриптом, окончательный вывод с помощью SSI
> 4 - Страницы почти полностью статические. Компилируются скриптом раз в день.> Пока мне кажется оптимальным вариант 3. В этом случае и на
>диске место не тратится чрезмерно, и достаточно быстро всё работать будет.На самом деле самым оптимальным является 4 вариант, только он позволяет страницам кешроваться на промежуточных прокси серверах и создает наименьшую нагрузку на сервер. Требования к дисковому пространству чуть больше чем при варианте 3, но это стоит того.
Третий вариант совсем немного уступает четвертому, минус - затраты на парсинг через mod_ssi, дополнительные затраты на открытие кучи файлов, вместо одного и некуширование контента в кэширующих http прокси.
Я бы посоветовал компромис, самое типовое вынести в SSI вставки, т.е. скомпоновать генерацию так чтобы не 40 вставок было, а штук 5.
>из-за утроения объёма сайта... А вот варианты 1 и 2 я
>прсчитать не могу - практики не хватает...Не стоит использовать БД как хранилище файлов, стреляя из пушки по воробьям.
Оставлю тестовый (для отладки внешнего вида) вариант сайта со всеми SSI, а после утверждения внешнего вида заменю все SSI-вставки короче 1кб на статический код с помощью "одноразового" скрипта. и переложу на место.
Вариант 4 полностью не пройдёт, хотя и лучше - у меня трёхкратное повторное использование получилось - так что утроение габаритов сайта не устраивает.И почему вариант 3 не может кешироваться на промежуточных прокси??? Он же выглядит как статический, да таковым и является по сути...
>Третий вариант совсем немного уступает четвертому
А совсем немного это насколько? несколько процентов или в два раза?>Я бы посоветовал компромис, самое типовое вынести в SSI вставки, т.е. скомпоновать
>генерацию так чтобы не 40 вставок было, а штук 5.
Вот вот. Так и постараюсь сделать. но меньше 10-20 вставок по 10-20Кб не получается.>Не стоит использовать БД как хранилище файлов, стреляя из пушки по воробьям.
Это точно. Бд на потом оставлю, если понадобится.
>И почему вариант 3 не может кешироваться на промежуточных прокси???
>Он же выглядит как статический, да таковым и является по сути...Страницы с SSI вставками не кэшируются прокси, так как апач всегда выставляет время последнего обновления документа для них в текущее время. Решается только внешним патчем для mod_include.
>>Третий вариант совсем немного уступает четвертому
>А совсем немного это насколько? несколько процентов или в два раза?До 10 инклудов еще текпимо, т.е. не хуже чем 4 вариант, но 40 - это, IMHO, слишком много. Минусы: не кэшируется proxy, лишняя нагрузка на CPU и диск.
>>генерацию так чтобы не 40 вставок было, а штук 5.
>Вот вот. Так и постараюсь сделать. но меньше 10-20 вставок по 10-20Кб
>не получается.Вполне нормально, плохо когда слишком много мелких файлов, 10-20 вставок по 10-20Кб нормально.
>Страницы с SSI вставками не кэшируются прокси, так как апач всегда выставляет
>время последнего обновления документа для них в текущее время. Решается только
>внешним патчем для mod_include.
Вот этого-то я и не знал.В целом всё ясно, спасибо, тема закрыта.