Hirdetés

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

  • nyunyu
    félisten

    Köszönöm a tippet.

    Ezt a leírást találtam róla: [link]

    Note: Updating a table with indexes takes more time than updating a table without (because the indexes also need an update). So, only create indexes on columns that will be frequently searched against.

    Van ilyen lekérdezésem is:
    SELECT * FROM table
    WHERE channel_id 
    IN ('id1','id2','id3','id4') 
    AND 
    (category LIKE '%category1%' 
    OR category LIKE '%category2%'
    OR category LIKE '%category3%' 
    OR category LIKE '%category4%' 
    OR category LIKE '%category5%' 
    OR category LIKE '%category6%') 
    AND 
    (category NOT LIKE '%category7%' 
    AND category NOT LIKE '%category8%' 
    AND category NOT LIKE '%category9%')
    ORDER BY date DESC LIMIT 4

    Ez alapján akkor ezeket a mezőket (channel_id, category) is indexelni kellene, mert végülis ugyanolyan gyakran vannak használva?
    Látok a link alatt olyat is, hogy lehet indexet mezők kombinációjára is beállítani. A fenti példám alapján hogy lenne jobb? Index külön a mezőkre? Index ezek kombinációjára? Vagy is-is?

    És ezt a CREATE INDEX-et csak egyszer kell mezőnként futtatni, és onnan "rendben van"? Azért kérdezem, mert próbálok mindent automatizálni, hogy ne kelljen figyelni rá, ha nem muszáj, és ha ez is olyan, amit többször kell meghívni, akkor erre is figyelnem kell.

    Bocsánat a sok kérdésért és értetlenkedésért, csak erről most hallok először, és fontosnak tűnik, nem szeretnék hibázni vele.

    Köszönöm.

    Categoryt hiába indexálod, fészbúk operátor miatt mindig full table search lesz az eredmény...

    Ha nem muszáj, ne nyomd a lájkot.

    Nem tudom, melyik a gyakrabb a táblából olvasásnál, channel_id-re szűrés vagy a dátum szerinti rendezés, attól függően lehetne összetett indexet is használni, pl.:
    CREATE INDEX table_ix1 ON table(channel_id, date);
    Gyakrabban használt oszlopot tedd előre az indexben.

    Egy táblából olvasáshoz egyszerre csak egy indexet szoktak használni a DB kezelők, így hiába tennél minden oszlopra külön-külön, jobban jársz pár jól megválasztott összetett indexszel.

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