Hirdetés

Új hozzászólás Aktív témák

  • don_peter

    senior tag

    Tiszteletem a mestereknek.

    Kérnék egy kis segítséget illetve tanácsot.
    Van egy fórumom amelyen MySQL frissítést hajtottak végre amellyel 5.6.23-ra változott a verzió szám.
    A problémám az, hogy a frissítés előtt nagyon gyors volt egy-egy lekérdezés, de most iszonyatosan belassult.
    Régebben 1-1 fórum lekérés kb. 1-3mp-et vett igénybe, most ugyan ez a lekérés 70-80mp-ig is eltart.

    A lekérésben van kb 10db subselect amellyel az olyan táblákat kérdezem le amelyeket nem tudok jointolni mivel azok nem szorosan kapcsolódnak az aktuálisan lekért és fő form-hoz.
    Ezek a subselectek inkább amolyan kis kiegészítők, de még is fontos információt hordoznak amelyeket a felhasználok gyakran használnak így fontos, szerves részét képezik a rendszernek.

    Észre vettem, hogy ha elkezdem kivenni a subselecteket a fő form-ból, akkor a lekérdezés ideje drasztikusan csökken.
    A kérdésem ezzel kapcsolatban az lenne, hogy mi lenne egy optimálisabb lekérdezési struktúra fórum esetében?
    Előbb kérjem le az esetleges fórum adatokat, majd PHP kilistázása közben kérdezzem le a további táblákat?

    A fórum amiről szó van, ha érdekes a válasz miatt: neo-geo.hu
    Bármelyik topikot meg lehet nyitni.
    Előre is köszi a segítséget.

    ui:
    Egy példa a mostani struktúrára:

    leker("SELECT
    fu.id AS fid,

    (SELECT count(fou.id)
    FROM f_uzenetek AS fou
    JOIN felh AS us
    ON fou.user_id = us.id
    WHERE fou.felh_id = fu.felh_id) AS msg_db,

    FROM f_uzenetek AS fu
    JOIN felh AS u
    ON u.id = fu.felh_id
    JOIN topik AS t
    ON t.id = fu.topik_id
    WHERE fu.topik_id=23 ORDER BY fu.date DESC LIMIT 1,25");

Új hozzászólás Aktív témák