Jednym z bardziej oczywistych sposobów na obsługę sytemu autoryzacji w PHP jest korzystanie ze zmiennych sesyjnych. Jest to w miarę proste i eleganckie rozwiązanie. Schody zaczynają się jednak w momencie, gdy liczba użytkowników rozbudowanego serwisu zwiększa się do tak dużej liczby, że dane utrzymywane w zmiennych sesyjnych będą zajmować maksymalne ilości pamięci zapisane w konfiguracji serwera. W takich sytuacjach długość trwania sesji ulegnie drastycznemu skróceniu a użytkownicy będą notorycznie wylogowywani z serwisu.
Wyczerpywanie limitu pamięci spowoduje, że zwiększanie wartości session.gc_maxlifetime w ini_set nie będzie dawało żadnych wymiernych korzyści. Garbage collection i tak notorycznie będzie niszczył najstarsze nieaktywne sesje. Ciągła rotacja powracających wylogowanych użytkowników będzie powodowała krótkie trwanie pozostałych sesji.
Czytaj dalej
Wielu programistów korzystających w swoich projektach z tandemu złożonego z PHP i MySQL poświęca swój czas na programową obsługę integralności danych znajdujących się w bazie. Jest oczywiście całkiem duże grono osób, które zupełnie nie zaprzątają sobie tym głowy. Śmietnik w bazie danych oczywiście nie zaszkodzi prostym małym projektom i może najwyżej zaszkodzić reputacji programisty tworzącemu tego typu serwisy. W przypadku rozbudowanych aplikacji w których baza danych składa się z dziesiątek tabel rozrastających się w trakcie życia projektu do rozmiarów liczonych w gigabajty, porządek jest już rzeczą niebagatelną i relatywnie wpływającą na szybkość działania witryny. Właśnie w takich przypadkach warto skorzystać z mechanizmów jakie oferują relacyjne bazy danych.