Kezdőoldal » Számítástechnika » Programozás » PHP-erőforrásigény kérdés -...

PHP-erőforrásigény kérdés - melyik a lightabb megoldás?

Figyelt kérdés

Adott egy táblázat/tömb, amelyben vannak rekordok, hozzá tartozó értékekkel (kb. 4-5 paraméter). Ezeket kellene lekérdezni szinte minden oldalletöltéskor.


Kérdésem, hogy melyik a kevésbé erőforrásigényes megoldás: ha ezeket egy SQL-táblában tárolom, és ott végzek selecteket, vagy betöltöm egy tömbbe, akár session-változóként is minden egyes usernél?


A válaszokat előre is köszönöm.


2016. szept. 1. 12:24
 1/7 anonim ***** válasza:

Session halmazt semmiképp sem ajánlanék, mert azt duplikálja milyen látogatónál.


Ha kevés adatod van (ez relatív), akkor még szóba jöhet h statikus változókként a php fájlodban tárolod. Ez lesz a leggyorsabb, mert nem kell adatbázissal kommunikálni.


Ha ennél több adatot szépen és hatékonyan akarsz felületen keresztül karban tartani és módosítani, akkor csak adatbázis jöhet szóba.

2016. szept. 1. 12:53
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

Maga az adat nem statikus - ez tulajdonképpen egy foglalási rendszer, hogy adott terméket ne vigyék el egymás elől a vásárlók.


Akkor viszont adatbázis lesz - a kérdésem arra irányul tulajdonképpen, hogy inkább több párhuzamos lekérdezés éri meg jobban, vagy az intenzív memóriahasználat.

2016. szept. 1. 13:01
 3/7 anonim ***** válasza:
A sok lekérést be tudod foglalni egy interakcióba. Erre már van technológia php-ban is. Ha módosulnak az adatok, akkor mindenképp adatbázist használj.
2016. szept. 1. 13:18
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Az adatbázisrendszereket pont arra találták ki, hogy ne kelljen gányolni. Kisebb feladatnál is már jobb egy DBLite, mint egy saját megoldás.

Ha meg a terhelésmegosztás miatt akkor méginkább.

2016. szept. 1. 21:14
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Tegyél fölé egy cache réteget. Redis/memcache.

Ha adott id-re adott adatokat kapsz, akkor simán egy id-t is tartalmazó cache kulcs alá pakold le az eredményt.

2016. szept. 2. 00:02
Hasznos számodra ez a válasz?
 6/7 2*Sü ***** válasza:

A session értékeket a PHP alapból fájlban tárolja. A fájlrendszer is tekinthető afféle adatbázisnak tulajdonképpen, de kevésbé hatékony, mint egy igazi adatbázis-kezelő, megfelelően optimalizált, tagolt, indexelt adattáblákkal. (Próbáld ki, melyik gyorsabb: lekérni 100 000 sort egy adatbázisból, vagy beolvasni 100 000 fájl tartalmát…) Pont ezért szokás nagyobb terhelés esetén a session-t adatbázisba pakolni, mert az gyorsabb. Onnantól meg végül is mindegy, hogy az egyik, vagy a másik táblából kéred le az adatokat.


Ahogy írták előttem ráadásul duplikálja az adatokat. Meg nem követi le az adatbázis változásait, ami adott esetben lehet problémaforrás is, hogy a sessionben tárolt adatokhoz képest időközben az adatbázis tartalma megváltozott.


Az adatbázis-kezelők nagyon jól optimalizáltak, általában érdemes rájuk bízni a feladatot.


Egy cache réteg nem jöhet rosszul, de az adatbázis-kezelőkben alapból van cache-elési mechanizmus.

2016. szept. 2. 01:19
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
Nagyon szépen köszönöm a válaszokat!
2016. szept. 2. 09:23

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!