Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> standardowa sesje vs sesja w bazie
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Prowadzil ktos z was jakies porownania wydajnosciowe w sprawie trzymania sesji w bazie vs sesja standardowa? Sa to jakies duzo roznice na niekorzysc sesji w bazie?

A jak teraz dodac do tego fakt, ze chcemy na biezaca znac aktywnych userow, to na standardowej sesji musimy dodawac dodatkowe rzeczy do bazy odnosnie zalogowanych userow i tak czy siak robic za kazdym razem odwolania do bazy. Zas przy sesji w bazie juz to wszystko nam odpada bo mamy sesje i tak w bazie i statad mozemy sobie wszystko pobrac. W tym przypadku juz tak duzej roznicy byc nie powinno.

Ktos cos?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
daro0
post
Post #2





Grupa: Zarejestrowani
Postów: 88
Pomógł: 12
Dołączył: 17.09.2014
Skąd: Krasnystaw

Ostrzeżenie: (0%)
-----


Niektóre frameworki, analizując FileStore zapisują pliki sesyjne np. w taki oto sposób

1)

app/storage/sessions/39/39ebd687d09eee8ded5e0a068ff6f8ff1376da15.sess
app/storage/sessions/3a/3af89014f96216b57a47fb7c5f316cb74b3b9162.sess
app/storage/sessions/7b/7bf3bb4a4cc5a24e1af3ad642d48f06d77158671.sess

a w nich serializowane dane.

Natomiast w domyślnej natywnej sesji jest jakiś katalog tmp a w nim pliki

2)
sess_ivg4t5j1k5f86ftu3mv89l1f65
sess_05md2phru9d1vihl99ic7kae55
sess_6lp60ho8lvvv9psou17h3o4pe2

i też to samo, serializacja

Czyli w 1) jest to porozrzucane a właściwie to uporządkowane w tych 2 znakowych podkatalogach, tutaj nazwy plików to sha1 na bazie jakiegoś unique id sesji, może być to też md5 ale też nie tak że wszystkie pliki w jednym katalogu ale w sumie w 256 2-znakowych podkatalogach.

Ktoś brał pod uwagę:

1) jeśli tych plików jest i z kilka milionów
2) ustawienia odśmiecania (np. 1%, 2% itd...)


Co do bazy danych to weźmy taką tabelę:

  1. CREATE TABLE `sessions` (
  2. `session_id` VARCHAR( 24 ) NOT NULL,
  3. `last_active` INT UNSIGNED NOT NULL,
  4. `contents` TEXT NOT NULL,
  5. PRIMARY KEY ( `session_id` ),
  6. INDEX ( `last_active` )
  7. ) ENGINE = MYISAM ;


I zapis do contents danych przy użyciu jeszcze dodatkowo base64encode

I teraz tak:

Jak to się wszystko ma do

a) szybkości
(IMG:style_emoticons/default/cool.gif) niezawodności (bo ja mając stronę na jakimś bezpłatnym hostingu obserwowałem swego czasu wywalanie się sesji natywnej z p. 2), były często, czego już nie było jak tylko zmieniłem sposób składowania, nie wiem dlaczego

No i jeszcze weźmy pod uwagę składowanie:

1. MongoDB
2. SSDB

Czy 1. jest też często stosowane? SSDB jest chyba jakąś alternatywą dla Redisa, przynajmniej tak mi się wydaje. Jakie macie tutaj doświadczenia?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 31.12.2025 - 09:49