webForumDet fria alternativet

Indexering?

8 svar · 471 visningar · startad av Asa

AsaMedlem sedan dec. 20011 934 inlägg
#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

AsaMedlem sedan dec. 20011 934 inlägg
#2

Ingen som vet?

cyprysMedlem sedan dec. 20003 105 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

AsaMedlem sedan dec. 20011 934 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.

LarsGMedlem sedan dec. 200012 465 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.

AsaMedlem sedan dec. 20011 934 inlägg
#6

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

AsaMedlem sedan dec. 20011 934 inlägg
#7

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

cyprysMedlem sedan dec. 20003 105 inlägg
#8

i databasen när du skapar tabellerna

AsaMedlem sedan dec. 20011 934 inlägg
#9

Okej! Tack..

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb