![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 18.07.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
sytuacja jest nastepujaca:
mam zajac sie portalem opartym na php i mysql, napisanym jakby kot przelazl po klawiaturze (kod nieprzejrzysty, chaotyczny, cud ze to wogole dziala). portal staje sie bardzo popularny i jest problem z obciazeniem mysql (praktycznie wszystko tam korzysta z bazy). zastanawiam sie czy jest jakis spobob zmniejszenia obciazenia bazy (i najlepiej tez apache'a) bez ingerencji w kod (tak wogole to pisze wlasnego cms'a ale to jeszcze chwile potrwa, a obciazenie musze obnizyc na dniach). pewnym rozwiazaniem jest generowanie wersji html kazdej strony za kazdym razem gdy cos zostanie zmieniona, ale nie jest to zbyt wygodne. jakies inne pomysly? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 18.07.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
nad wykorzystaniem tmmc jeszcze sie zastanowie, ale watpie czy bede mial dostep do konfiguracji serwera
na razie napisalem sobie taka funkcje 'cache'ujaca' wyniki skryptow w plikach html [php:1:b6039ba206]<?php // dolaczane na poczatek kazdej strony function filename () { $file = basename($_SERVER['SCRIPT_FILENAME'], '.php'); if (trim($_SERVER['QUERY_STRING'])) { $file .= '_' . trim($_SERVER['QUERY_STRING']); } $file = $file . '.htm'; return $file; } if (!$_POST) { $html_file = filename(); if (file_exists($html_file)) { header('Location: '. $html_file); } else { function generate_html ($content) { $file = filename(); if($fp = fopen($file, 'w') AND flock($fp, LOCK_EX + LOCK_SH) AND fwrite($fp, $content) AND flock($fp, LOCK_UN) AND fclose($fp)) { header('Location: '. $file); } } ob_start('generate_html'); } } else { ob_start(); } ?>[/php:1:b6039ba206] zastanawiam sie jeszcze jak rozwiazac zmiany na stronach aby html'e byly aktualne. ze strony zmian redakcyjnych nie ma problemu: po dokonaniu zmian redaktor usuwa stary plik html i generuje nowy otwierajach strone w przegladarce, ale co jesli zmian dokona uzytkownik np. dodajac komentarz do newsa czy glosujac w ankiecie? (warunek if (!$_POST) w moim kodzie) chociaz... ehh, przeciez moge wykonac skrypt gdy beda przesylane dane z post i wtedy zapisac wynik w html (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (myslenie boli (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ). chociaz w praniu moga wyjsc jakies tego efekty uboczne, moze ktos juz widzi jakies problemy takiego rozwiazania? nowy kod powinnien wygladac chyba tak: [php:1:b6039ba206]<?php // pomijam deklaracje funkcji if (!$_POST) { $html_file = filename(); if (file_exists($html_file)) { header('Location: '. $html_file); exit; } } ob_start('generate_html'); ?>[/php:1:b6039ba206] prosze tez o uwagi zwiazane z bezpieczenstwem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ps. ten topic chyba juz nie pasuje do tego forum |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 14:32 |