Mailinglisten-Archive |
----- 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
php::bar PHP Wiki - Listenarchive