![]() |
Datenbank: MySQL • Version: 4 • Zugriff über: irrelevant
Indizes in MySQL
Hallo!
Ich hätte mal ne Frage: Ich benutze MySQL zar schon seit ein paar Jahren, jedoch weiß ich bis jetzt nicht genau wofür Indizes gut sind. :oops: Könnte mir das wer mal in ein paar Sätzen erklären oder mir einen Link posten wo das erklärt wird? Unter Google werde ich nicht so wirklich fündig auf der Suche nach einer akzaptablen Antwort. Grüße Faux |
Re: Indizes in MySQL
Indizes beschleunigen Abfragen. Ein Index ist ein Art Inhaltsverzeichnis der Tabelle, geordnet nach bestimmten Feldern.
|
Re: Indizes in MySQL
Zitat:
Z. B. wenn ich eine Tabelle mit Forumseinträgen habe, die auch eine Spalte user_id enthält, die dann m:1 auf einen User verweist, sollte user_id ein index sein? Grüße Faux |
Re: Indizes in MySQL
Wenn du z.B. folgendes machst:
SQL-Code:
Dann reicht ein PRIMARY Index mit autoincrement auf userid.
SELECT * FROM users WHERE userid=42
Wenn du folgendes machst:
SQL-Code:
Dann wäre ein INDEX über die ersten 10 Bytes von itemname und über userid gut zu gebrauchen.
SELECT * FROM items WHERE itemname='blubb' AND userid=42
Konzept verstanden? |
Re: Indizes in MySQL
Also sollte man jedes Feld, das zur Verknüpfung von Einträgen benutzt wird Indizieren?
|
Re: Indizes in MySQL
Nein, für dieses Feld existiert dann ein Index.
Beispiel Tabelle [/b]ID Name Vorname[/b] 1 Maier Willy 2 Frank Peter 3 Schmidt Anne Index für Feld Name Frank 2 Maier 1 Schmidt 3 Index für Feld Vorname Anne 3 Peter 2 Willy 1 |
Re: Indizes in MySQL
@faux: Nicht unbedingt. Wenn die Abfrage von wenig Feldern abhängt, kann man das gut machen. Bei VARCHAR und TEXT würde ich nur die ersten 5-10 Zeichen indizieren.
Wenn es mehrere Felder werden, würde ich nur die wichtigsten indizieren, also die, die die meisten "falschen" Einträge ausschließen, da ansonsten der Index irgendwann ins Unermessliche wächst. |
Re: Indizes in MySQL
Zitat:
|
Re: Indizes in MySQL
Danke für eure Antworten! ;)
Zwei Fragen noch: Zitat:
Wo liegt der Unterschied zwischen einem "Normalen" Index und einem Fulltext index?
SQL-Code:
Grüße
ALTER TABLE series ADD INDEX serie_title (serie_title);
ALTER TABLE series ADD FULLTEXT serie_title (serie_title); Faux |
Re: Indizes in MySQL
Schau halt mal in die MySQL Dokumentation. ;)
|
Re: Indizes in MySQL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz