PHP lekérdezések gyorsasága
2010-01-18T23:38:49+01:00
2010-02-17T15:59:12+01:00
2022-07-19T04:23:06+02:00
  • Ez viszont a szerver terhelését növeli olyan értelemben, hogy több processzoridőt fogyaszt egy-egy felhasználó számára a tartalom előállítása. Vagy tévedek?
    Mutasd a teljes hozzászólást!
  • Van még egy 'témakör', amiről még nem esett szó, és ez a böngészőnek küldött adatfolyam tömörítése.
    Ezt úgy érheted el, hogy apache szerver szinten engedélyezed a compression adatátvitelt a böngésző felé. Ez azt jelenti, hogy azok a böngészők, amik támogatják a tömörített tartalmakat (Accept-Encoding: deflate, gzip, x-gzip,...) azok így is fogják megkapni a szervertől.
    Nagyobb tartalmú site-ok esetén óriási sebességnövekedéshez vezethet.
    Mutasd a teljes hozzászólást!
  • 1. A szerveren lefutó PHP kód és adatbázis-lekérdezések gyorsasága.


    Nem esett szo cachingrol, pl. a forditott PHP kodot cache-elo megoldasokrol, mint eAccelerator vagy APC, es egyeb megoldasokat, melyekkel pl a lekerdezesek szamat lehet csokkenteni, talan memcached a legnepszerubb.

    Lehet hasznalni forraskod szintjen, query elott megnezed, hogy a keresett adat nincs-e mar a cache-ben, ha nincs, kiolvasod a DB-bol es cache-eled, ha van, akkor nincs is szukseg queryre.

    Lehet hasznalni webszerver szintjen is, pl. apache modmemcachecache-el vagy ngin-x, ebben az esetben maga a szerver nezi meg eloszor, hogy a kert oldal nincs-e cach-elve, ha igen, nem kell ujbol legeneralni.

    Tovabba nagy forgalmu portaloknal sokat szamit a hasznalt http szerver szoftver, pl. lighttp vagy ngin-x sokkal kevesebb eroforrast eszik, jobban skalazodik apacsnal.

    Igazan nagy forgalmu portaloknal meg lehet clusterezni a szervereket, tobb fizikai szerver kozott elosztani a kereseket egy load balancerrel, furtozni DB-t, meg a felhasznalokat IP alapjan foldrajzilag kozelebb levo szerverre iranyitani.
    Mutasd a teljes hozzászólást!
  • Sok tipp és trükk van a témában, amelyekről - főleg angolul ugyan -, de sok cikk született már. Ez egy átfogó, leegyszerűsített áttekintés lesz, szigorúan kezdőknek. Eme vázlat 2. pontja ugyan OFF-topic, de - ha nem is szorosan - a témához kapcsolódik, hiszen ez is fontos szempont egy portál létrehozásánál. Először is tisztázni kell a gyorsaság fogalmát!

    1. A szerveren lefutó PHP kód és adatbázis-lekérdezések gyorsasága.
    2. Szerver-kliens közötti adatátvitel és a kliensen történő megjelenítés gyorsasága.
    (igazából helyesebb lenne időnek nevezni, hiszen a sebesség adott a műszaki paraméterek által)

    1.a A szerveren futó script lefutási ideje átlagos felhasználású scriptek esetén kicsi. Pl: tömb feldolgozása ciklusban, string-műveletek (csere, kivágás) stb. (emberi méretű tömbök és stringek esetén)

    1.b Az adatbázisműveletek gyorsasága függ az adatbázis-struktúrától, valamint ebből következően a kiadható lekérdezések egyszerűségétől. Minél egyszerűbb, és minél konkrétabb lekérdezéseket tudsz írni, annál jobban kihasználod az adatbázis(szerver) gyorsaságát.
    Néhány példa:
    - indexelés
    - redundancia (sok írás - kis redundancia, sok olvasás - nagyobb redundancia)
    - ha biztosan tudod, hogy csak egy találat lesz a lekérdezésben, érdemes egy LIMIT 0,1 határt adni, hiszen fölösleges tovább olvasni a sorokat
    - stb.

    2.a A kliensnek küldött adatmennyiséget a lehetőségekhez képest minimalizálni kell. Sávszélességet zabáló elemek főként a képi, zenei és egyéb médiaelemek(pl. shockwave). Ezek ugyan általában a kliens gépén cache-ben tárolódnak, sok felhasználó esetén, valamint gyorsan változó portálnál viszont komoly sávszélesség-terhelést tudnak okozni.

    2.b A kliens oldalon, ha megérkezett az adat, meg is kell azt a böngészőnek jeleníteni. Problémát okozhatnak itt a processzort zabáló JavaScript "ügyeskedések", nagy méretű táblázatok, nagy méretű képek, stb.

    Köszönöm a figyelmet, köszönöm a fikázást az miatt, de most ilyen irkálós kedvemben voltam.
    Mutasd a teljes hozzászólást!
  • Szia

    Összességében több dolog is befolyásolja, például, hogy hogyan tervezed meg az adatbázist, mennyire tudsz hatékony kódot írni, stb. Ha elboldogulsz angolul, akkor találsz számtalan ilyen, és ehhez hasonló leírást is ebben a témában:
    http://php5.phpmagazine.net/2006/05/php5_benchmark_benchmarked.html
    Mutasd a teljes hozzászólást!
  • Hello!
    Nem találtam az oldalon olyan kérdéseket melyekre érkezett volna olyan válasz amely engem eléggé kielégített volna, ezért hát megkérdezném, hogy általánosságban, egy PHP oldal (teszem azt egy PHP MSQL alapú portál) gyorsasága mitől függ? Az általános "tutorial alapú" sql lekérdezések idővel fárasztóak és nem is tudom, hogy mennyire lesznek gyorsak később, illetve maga a portál megtervezésénél milyen szempontokat érdemes figyelembe venni szerintetek?

    Remélem nem túl off Na előre is köszi a válaszokat :)
    Mutasd a teljes hozzászólást!
abcd