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
8 svar · 471 visningar · startad av Asa
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
Ingen som vet?
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
Okej, ska kika lite på det. Har även sökt lite men tycker inte att jag får den info jag behöver.
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.
Tackar! Ska se om jag får till så det går fortare nu.
Ska jag göra indexeringen i aspkoden? Eller i databasen?
i databasen när du skapar tabellerna
Okej! Tack..