eRIZ's weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje

Cache danych – czym, jak, gdzie i kiedy – cz. I: teoria

PHP (zresztą nie tylko ten język) jako server-side do nauczenia trudny nie jest. Po jakim czasie seito twierdzi, że potrafi pisać całkiem niezłe skrypty, CMS, czy aplikacje. Ale nawet i wielu sensei często miewa problemy, gdy chodzi o mocno obciążone serwisy, w których stopniowo zaczynają pojawiać się wąskie gardła – strony wczytują się coraz wolniej, aż do momentu, gdy baza danych odmawia posłuszeństwa z powodu przeciążenia.

Na domiar złego, użytkownicy odświeżają wielokrotnie te same strony – albo z powodu wielu prób otwarcia, albo w celu aktualizacji często zmieniających się treści. I tak mamy pewien procent żądań, które tylko niepotrzebnie obciążają serwer, nieraz będące błędnym kołem – skrypt oczekuje na połączenie z bazą, a zniecierpliwiony gość albo opuści stronę, albo będzie wciskał CTRL+R do oporu…

Owszem, można postawić farmę serwerów z load-balancingiem/proxy-cache, ale nieraz jest to strzelaniem do muchy z armaty, poza tym – w przypadku mniejszych serwisów jest to poza ich zasięgiem finansowym. Jednak są sposoby… ;]

więcej

PHP feat. MySQL: Sposób na drzewka

aktualizacja

W Sieci można natknąć się na wiele przepisów, w jakis sposób stworzyć drzewka zapisywane w DB. Niektóre mają więcej, niektóre mniej wad… Ale poszukiwałem jakiegoś w miarę uniwersalnego rozwiązania, które by najlepiej pasowało do moich potrzeb.

Założenia

Potrzebujemy drzewka kategorii. Ot, takie najprostsze, np:

  • kategoria
    • podkategoria1
    • podkategoria2
  • kategoria

więcej

phpMyAdmin – przenoszenie bazy i polskie znaki

Dosyć często spotykanym problemem jest złe wyświetlanie polskich „krzaczków” po przeniesieniu bazy na inny serwer. W rzeczywistości, nie jest to żaden błąd oprogramowania, tylko niewłaściwie dobranych ustawień.

Zacznijmy od tego, w jakich formatach mogą byc zapisywane polskie znaki – są to ISO 8859-2 i coraz popularniejszy UTF-8.

phpMyAdmin udostępnia dosyć wygodne opcje służące do importu/eksportu danych do/z bazy. Jednak dosyć często zdarza się sytuacja, że ciężko jest przenieść bazę zachowując jednocześnie nie naruszone diakrytyki. Owszem, można jeszcze zamienić na encję, ale problem należy rozwiązać, a nie obejść.

Korzystając ze świeżych doświadczeń, opiszę krok po kroku, w jaki sposób przenieść zawartość bazy i zachować diakrytyki.

więcej

Szufladka