---
title: "Indexering?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/92770-indexering"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2003-12-16T08:52:19.000Z"
updated: "2003-12-16T23:40:51.000Z"
replies: 8
views: 474
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/92770-indexering"
---

# Indexering?

## #1 — Asa, 2003-12-16T08:52Z

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

Permalänk: https://www.webforum.nu/p/92770

## #2 — Asa, 2003-12-16T11:27Z

Ingen som vet?

Permalänk: https://www.webforum.nu/p/1229695

## #3 — cyprys, 2003-12-16T11:29Z

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>

Permalänk: https://www.webforum.nu/p/1229698

## #4 — Asa, 2003-12-16T11:34Z

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

Permalänk: https://www.webforum.nu/p/1229699

## #5 — LarsG, 2003-12-16T17:40Z

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.

Permalänk: https://www.webforum.nu/p/1229924

## #6 — Asa, 2003-12-16T20:33Z

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

Permalänk: https://www.webforum.nu/p/1230034

## #7 — Asa, 2003-12-16T20:48Z

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

Permalänk: https://www.webforum.nu/p/1230040

## #8 — cyprys, 2003-12-16T21:51Z

i databasen när du skapar tabellerna

Permalänk: https://www.webforum.nu/p/1230076

## #9 — Asa, 2003-12-16T23:40Z

Okej! Tack..

Permalänk: https://www.webforum.nu/p/1230153

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/92770-indexering
