webForumDet fria alternativet

Indexering?

Databaser & SQLur Databashanterare & SQL

8 svar · 471 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Kan någon berätta för mig vad nu detta är och hur man gör? Det jag vet är att det ska hämta data snabbare ifrån en databas men hur gör man? Använder MySQL Front för att skapa databaserna.

Kontakta mig helst på min icq: 118016773

Medlem sedan dec. 20011 860 inlägg
#2

Ingen som vet?

Medlem sedan dec. 20003 563 inlägg
#3

Sök på ordet indexering i databasforumen så lovar jag att du hittar material. Jag har till minnes att svaret på din fråga kommit upp några gånger.

Vad man gör enkelt sagt är att lägga indexen i en viss ordning datamässigt sätt, så det går snabbare att söka bland fälten som är indexerade.

I mySQL-front kryssar du helt enkelt bara i checkboxen "indexed" eller nått sånt.
Här står lite om hur syntaxen ser ut vid skapandet av tabellen i SQL.
http://www.mysql.com/doc/en/CREATE_TABLE.html

Medlem sedan dec. 20011 860 inlägg
#4

Okej, ska kika lite på det. Har även sökt lite men tycker inte att jag får den info jag behöver.

Medlem sedan dec. 200012 464 inlägg
#5

Ett index på en tabell fungerar på samma sätt som ett index i en bok. Databashanteraren duplicerar data för de kolumner som ingår i indexet sorterat map de indexerade kolumnerna.

create table t1(c1 int primary key,c2 int);

säg att t1 innehåller posterna

c1 c2
------
1 3
2 2
3 1

En fråga som

select c2 from t1 where c2 = 2

innebär att DBMS måste läsa alla poster. Om man skapar ett index på c2

create index i on t1(c2)

så kan DBMS använda t.ex. binärsökning om man ställer ovanstående fråga. Ett index kan också användas vid order by

select c2 from t1 order by c2

I och med att posterna ligger sorterade med avseende på värdet i C2 så kan DBMS läsa indexet för att få rätt ordning. Om det inte fanns index så skulle man behöva skapa en temporär tabell för att göra sorteringen.

Vilka kolumner skall man indexera?

Kolumner som man ofta ställer villkor på.
Kolumner som man joinar på.
Kolumner som man använder i order by.

Kolumner som ingår i primärnyckel behöver inte indexeras.

I mysql kan du göra

explain select ...

så får du information om hur frågan utförs. Den visar i vilken ordning tabellerna läses om något index används.

Medlem sedan dec. 20011 860 inlägg
#6

Tackar! Ska se om jag får till så det går fortare nu.

Medlem sedan dec. 20011 860 inlägg
#7

Ska jag göra indexeringen i aspkoden? Eller i databasen?

Medlem sedan dec. 20003 563 inlägg
#8

i databasen när du skapar tabellerna

Medlem sedan dec. 20011 860 inlägg
#9

Okej! Tack..

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