Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Index und die Schnelligkeit

  Alt 23. Mai 2017, 23:32
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.
  Mit Zitat antworten Zitat