webForumDet fria alternativet

MySQL DB och index

3 svar · 267 visningar · startad av G8

G8Medlem sedan jan. 20011 213 inlägg
#1

Jag har en databas, MySQL. I den batabasen har jag en tabell som heter users, där ingår ID i index. Till min fråga, vore det klokt att ikludera fler fält från tabellen i mitt index, eller ska jag bara ha med ID? Ska jag i så fall inkludera de fält som jag hämtar ofta eller de fält som jag använder ofta som villkor i mina frågor?

ex. där ID är det jag menar som villkor:

"Select namn FROM users WHERE ID = &"UID

I vilka sammanhang ska man inte indexera, och är det någon speciell datatyp som man inte ska indexera, t.ex. fält med mkt text?

Mvh

//G8

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Kolumner som är värda att indexera:

De som används i sökning och vid join
De som används för order by

Om du vill kunna söka i fritext så är nog full text indexing mer relevant.

G8Medlem sedan jan. 20011 213 inlägg
#3

Varför inte då indexera alla kolumner som inte är memo (Longtext) då.

Eller, växer inte databasen i storlek för varje index man gör, eller kolumner man inkluderar i sitt inde, hur mkt i så fall, dubbelt?

hmm...

//G8

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är så sant. Index tar plats och innebär att skrivoperationer tar längre tid.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)