phpbar.de logo

Mailinglisten-Archive

Re: INDEX (ganz genau)
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: INDEX (ganz genau)




----- Original Message -----
From: Thomas Feyrer <Dante_(at)_altmuehlnet.de>
To: <mysql-de_(at)_lists.4t2.com>
Sent: Tuesday, August 10, 1999 12:36 PM
Subject: INDEX


> Hi,
> für was ist eigentlich ein INDEX in einer Tabelle nützlich?

Den Index brauchst du, um grosse Datenmengen in einem unglaubliche schnellen
Tempo zu durchsuchen.
Stell dir den Unterschied vor:

1.) Beispiel ohne Index:
Du hast eine Textdatei mit 10 MB Grösse und du suchst nach einem Wort. dazu
musst du jedes Wort in der grossen Datei mit dem Suchwort vergleichen. Bei
einer angenommenen Wortlänge von 10 Zeichen stehen müssen 1 Million
Datenzugriffe erfolgen.

2.) Beispiel mit Index:
Nun stell dir vor, alle Wörter sind sortiert und zwar so, das immer ein
Wurzelwort zwei nachfolgende Wörter hat. Ein kleineres und ein grösseres.
Beispiel :                      -------- Mutter------------
                         ------Kind----                 -----Vater----
                    Enkel            Nichte        Uroma        Zauberer

Du suchst jetzt den Ausdruck "Nichte", dann greift die Datenbank auf Mutter,
Mutte ist grösser als Nichte
also sucht die Datenbank den linken Folgeausdruck "Kind" und vergleicht
wieder: Das Suchwort "Nichte" ist grösser als "Kind" so sucht die Datenbank
den rechten Folgeausdruck und sie hat das Ergebnis.

Bei diesem Beispiel gat die Datenbank also beim dritten Zugriff das Ergebnis
gefunden. In diesem Fall ist das kein Geschwindigkeitsgewinn, aber stell dir
vor du hast oben beschriebene 1 Million Suchbegriffe, dann greift die
Datenbank bei diesem Verfahren im optimalen Fall 20 mal zu dann hat sie das
richtige Ergebnis. ALSO 20 ZUGRIFFE bei 1 MILLION DATENSÄTZE - das ist ein
Index (auch B-TREE genannt)

Für einen Zugriff kannst du rechnen etwa 10-20 Millisekunden Mal 20 Zugriffe
ergibt etwa 0,4 Sekunden, dann hat die Datenbank das Ergebnis gefunden und
sonst wartest Du etwa 1.000.000 Mal 20 Millisekunden - das ist dann schon
einige Zeit.

Also: lange Rede kurzer Sinn: Für Datenbanken bis 1000 Datensätze ist ein
Index nicht unbedingt notwendig, aber wenn mehr Datensätze vorhanden sind
unbedingt zu empfehlen.

Freundliche Grüsse aus Kärnten

RolandREichmann_(at)_gmx.net








>
> Bye
>  Dante
>
> ---
> *** Abmelden von dieser Mailingliste funktioniert per E-Mail
> *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
>
>


---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive