Har fått klart för mig att index är bra att ha om man vill snabba upp sökningar i databaser men det tar längre till att lägga till saker med index.
Men hur ska man lägga upp sina index? såg att man kan ha samma kolumn i flera index samt ha fler kolumner i samma index.
behöver man bry sig om själv indexet sen när man väl satt up pdatabasen? använder man tabellen på samma sätt som om den inte skulle ha några index?
Vad är det för nackdel med att ha alla kolumner i ett index?
är det bättre att ha alla kolumner i egna index?
ska man bara ha index på de kolmuner man har i sitt vilkor i SQL-fråga, alltså i WHERE-biten?
Om det är något annat att tänka på vid användning av index så skriv gärna det. Eller även om det rör sökning i databaser.
Tabell t1 har tre kolumner k1, k2, k3.
select * from t1 where k1=... and k2=...
då ska både k1 och k2 finns i index
men o mdet ser ut så här
select * from t1 where k2=...
så ska bara k2 finns med.
men om man använder båda frågorna ska man då ha två index ett med k1, k2 och ett med bara k2?
I princip ja. Du kan också vända på ordningen i indexet (k2,k1) i detta fall. Det beror även på vilken fördelning du har på datat. T.ex. om det bara finns tio distinkta värden i en kolumn i en tabell med 1 miljon poster så är ett index på en sådan kolumn inte så värdefullt.
Det kan även finnas anledning att ta med kolumner i index även om de inte förekommer i sökningen. T.ex.
select c1,c2,c3
from t
where c1 = 47
and c2 = 11
Om man definerar ett index som innehåller kolumnerna c1,c2 och c3 så kan databashanteraren hämta allt data enbart genom att läsa index. Dvs, den behöver inte läsa något alls ur tabellen vilket kan vara en stor vinst om tabellen innehåller flera (breda) kolumner.
251 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e