| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Im Zweifel das hier: http://de.wikipedia.org/wiki/B-Baum Stell dir vor, du suchst in einem Buch nach einem Stichwort. Da kannst du entweder alle Seiten durchgehen und prüfen, ob das Stichwort auftaucht, oder du kannst hinten im Buch den Index aufblättern, der dir zum jeweiligen Stichwort die relevanten Seitenzahlen nennt. Ziemlich genau so verhält es sich mit Datenbank-Indizes. Die Datensätze einer Tabelle sind grundsätzlich als ungeordnet anzusehen. Ohne Indizes bleibt dem Datenbanksystem deshalb nichts anderes übrig, als davon auszugehen, dass prinzipiell jeder Datensatz ein nachgefragtes Kriterium erfüllen kann. Das bedeutet, jeder Datensatz muss einzeln geprüft werden (full table scan). Ein Index ist nun beispielsweise eine zusätzlich abgespeicherte, in einer Baumstruktur angeordnete Übersicht, die eine nach einer bestimmten Spalte sortierte Liste aller Datensätze enthält. (Wie eine Datenbank das im Detail umsetzt, ist grundsätzlich wenig relevant.) Simples Beispiel: Du hast eine Tabelle, die Nutzernamen enthält. Du möchtest nun alle Nutzernamen auslesen, die mit b beginnen. Auf der entsprechenden Spalte hast du einen Index. Das Datenbanksystem beginnt nun, sich durch den Index-Baum zu hangeln. Auf der erste Ebene könnte das heißen: „Alle Einträge, die ‚kleiner‘ als Anfangsbuchstabe n sind, stehen in diesem Zweig, alle weiteren im anderen.“ Gefolgt wird also dem ersten Zweig. An der nächsten Abzweigung heißt es dann meinetwegen: „kleiner als g sowie: zwischen g (inklusiv) und n (exklusiv).“ Somit wird durch den Index und zwei günstige Operationen die Anzahl der zu durchlaufenden Datensätze schon mal auf grob ein Viertel reduziert. Die Darstellung war jetzt nicht sonderlich exakt, aber ich denke, es wird deutlich, wie immens der Gewinn ist. Deshalb sollte etwa auch in jedem WHERE-Clause mindestens eine Spalte auftauchen, auf der ein Index liegt. |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ja. Hier wird das alles auch noch mal offiziell beschrieben: - http://dev.mysql.com/doc/refman/5.6/...l-indexes.html |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Query Problem | ragtek | Datenbanken | 3 | 29.06.2011 09:12 |
| [Erledigt] Problem bei Zugriff von zwei Tabellen auf einer Tabelle - welcher JOIN? | darkman | Datenbanken | 9 | 06.05.2011 11:47 |
| [Erledigt] SQL Query funktioniert im phpmyadmin aber nicht mit PDO und PHP | litterauspirna | PHP Einsteiger | 3 | 09.01.2011 10:50 |
| [Erledigt] sql query mit variablen? | Helix | PHP Einsteiger | 6 | 08.12.2010 11:19 |
| [Erledigt] sql query nochmal filtern | gersh | PHP Einsteiger | 30 | 02.12.2010 22:30 |
| SQL Datei mit PHP ausführen | Kein Genie | PHP Tipps 2010 | 2 | 09.11.2010 09:52 |
| [Erledigt] problem mit mysqli query | fulltilt | PHP Tipps 2010 | 10 | 24.09.2010 11:52 |
| [Erledigt] Query Problem mit between bei Datum | fulltilt | PHP Tipps 2010 | 3 | 02.06.2010 12:43 |
| Unabhängige "Auto-Increment Spalte" für ein ON DUPLICATE KEY query? | juice122 | Datenbanken | 4 | 31.05.2010 20:59 |
| [Erledigt] performance query frage | rudygotya | Datenbanken | 16 | 08.08.2009 12:23 |
| ImageMagick Performance Problem | M3g4Star | PHP Tipps 2006 | 1 | 30.11.2006 09:35 |
| Mega Sql Query Problem | Finkman | Datenbanken | 7 | 20.05.2006 12:17 |
| like opeartor - performance problem | Datenbanken | 15 | 08.12.2004 03:48 | |
| [Erledigt] Query läuft nicht | Datenbanken | 6 | 13.08.2004 21:13 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php sql query performance, php query und performance testen, php performance sql query vs function, sql query lastproblem, sql query, sek, performance probleme query, performance sql abfrage, sql fehler über php lösen? |