webForumDet fria alternativet

Fundering kring indexering

Webbutveckling

4 svar · 271 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#1

Hej!

Jag har en tabell med 1.4 miljoner poster.
Denna tabell kommer sällan att uppdateras.

Jag har fyra fält som kommer att vara sökbara.

Någon som har några kommentarer på hur jag bör bygga upp mitt index med avseende på bästa prestanda vid selectförfrågningar. De fyra fälten innehåller endast unika poster och är av typen varchar.
Jag tänker på inställningar som fill factor, pad index, unique, ignore duplicate values osv.

Tips?

Medlem sedan dec. 200012 464 inlägg
#2

Hur ser dina sökningar ut? Söker du på flera kolumenr samtidigt? and/or ? Gör du order by?

När du säger unik menar du alla 4 kolumnerna tillsammans eller var för sig? Vad är primärnyckel?

I och med att du kommer att uppdatera finns det ingen anledning att ange fill_factor/pad tycker jag.

Flyttas från SQL

Medlem sedan mars 20032 667 inlägg
#3

Det är väl fält som ofta ingår i where-, join-villkor och order by som bör indexeras.

Medlem sedan dec. 19995 874 inlägg
#4

LarsG skrev:

I och med att du kommer att uppdatera finns det ingen anledning att ange fill_factor/pad tycker jag.

Vill du förklara pad index?

LarsG skrev:

När du säger unik menar du alla 4 kolumnerna tillsammans eller var för sig? Vad är primärnyckel?

Var för sig är de unika. Jag har en id-kolumn som är primärnyckel. Men sökningarna kommer att göras på de andra fyra kolumnerna.
Jag har idag ett index för varje kolumn (fyra index). Där jag ställt in att det endast är unika värden.

Jag har inga prestandaproblem. Jag var bara nyfiken på era tankar.

Medlem sedan dec. 200012 464 inlägg
#5

Fill_factor är ju hur mycket man skall packa de olika sidorna. När index skapas så packar man så mycket som det går. Utan pad_index så är det enbart datasidorna som påverkas av fill_factor. Med pad_index så gäller den även för indexsidor.

Det jag tänkte på var att det kanske lönar sig med ett sammansatt index, t.ex. om du ofta har frågor av typen

where c1 = 'value' and c2 = 'value'

Det finns ju någon index profiler utility tjofräs som på något sätt kan tipsa om vilka index som används och ge förslag på vad som kanske är lömpligt. Jag har aldrig sett den i aktion så jag har ingen erfarenhet att delge.

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)