Hallo lisamarie87,
ein Index erhöht die Geschwindigkeit bei der Suche nach einer Zeile. Also sozusagen die "WHERE"-Klausel in der
SQL-Abfrage. Welche Spalten du abfragst (SELECT), ist irrelevant. Also ob du "SELECT ort FROM tabelle" ausführt oder "SELECT * FROM tabelle" – das ist egal, da kann der Index nichts beschleunigen.
Wenn du aber z.B. "SELECT * FROM tabelle
WHERE ort='Frankfurt'" ausführst – dann macht es einen Unterschied. Denn ohne Index müsste das
DBMS alle Zeilen der Reihe nach durchgehen (Full Table Scan) und prüfen, ob die WHERE-Klausel zutrifft. Das wird natürlich immer langsamer, je mehr Einträge in der Datenbank sind. Mit Index geht es wesentlich schneller.
Stell dir ein Telefonbuch (ganz klassisch, aus Papier) vor. Wenn du zu einem Namen die Telefonnummer finden willst, dann geht das recht schnell, weil die Namen sortiert sind. Das ist die Suche mit Index. Jetzt stell dir vor, das Telefonbuch wäre nicht sortiert, sondern die Paare aus Namen und Nummern würden in zufälliger Reihenfolge drinstehen. Dann würdest du ewig nach dem richtigen Eintrag suchen. Das ist die Suche ohne Index.
Ein Index ist in der Regel als
balancierter Baum umgesetzt. Es gibt aber auch andere Index-Arten, die z.B. auf Hashtabellen basieren. Alles hat seine Vor- und Nachteile.