Hirdetés

Keresés

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

  • Taci

    addikt

    válasz nyunyu #5060 üzenetére

    Sikerült egy úgy-ahogy rendszert összeraknom, megcsináltam a táblát, feltöltöttem ugyanúgy, ahogy otthon is tenném, minden ugyanaz, kivéve, hogy most csak 20 elemet raktam bele, hogy tudjam kézzel szerkeszteni az ajánlott új táblákat is, és ne menjen rá túl sok időm.

    Kész mind a három tábla, mondom akkor indexelem a dátum mezőjét (ahogy otthon is tettem), és lekérdezem EXPLAIN-nel, hogy jól dolgozik-e, elsőre csak az alap lekérdezéssel, hogy legyen összehasonlítási alapom:
    EXPLAIN SELECT * FROM table ORDER BY date DESC LIMIT 4

    Az otthoni rendszerben ez visszaadta, hogy
    rows: 4, type: index.
    Most azonban hiába ott van az indexelés (phpMyAdmin-ban egyértelműen látszik több formában is), ez a visszatérési érték:
    rows: 20, type: all.

    Tehát nem indexelt semmit.
    Próbáltam kézzel is (CREATE INDEX table_date_ix ON table(date)), illetve grafikus felületen a megfelelő kapcsolóval. De ugyanaz az eredmény.

    Mi lehet ennek az oka? Túl kevés a 20 elem az indexeléshez? (Otthon 500e rekord volt a táblában, itt most csak 20.)

    1. update:
    Kíváncsiságból "felduplikáltam" kb. 100e rekordig, és most már
    rows: 4, type: index.
    Ezek szerint a 20 kevés volt? Mennyi a "minimum limit"? Kézzel kell egyelőre dolgoznom, szóval nem mennék nagyon túl a minimumon, ha nem muszáj (és ha van ilyen, persze).

    2. update:
    Visszatöröltem 20 rekordig, és most még mindig van indexelés...
    rows: 1, type: index.

    Ezt nem értem.
    Itt azon kívül, hogy hogyan és miért lett hirtelen indexelés ugyanannyi elemre, azon kívül még azt nem értem, a rows értéke miért csak 1, amikor a lekérdezés (explain nélkül) 4 rekordot ad vissza. A rows: 1 pedig ugye azt jelenti, hogy 1 rekordot vizsgált át.
    Hogyan ad vissza 4 rekordot, ha csak 1-et vizsgált át?

    El tudnátok magyarázni, kérlek?

    Köszi.

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