AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indizes in MySQL

Ein Thema von faux · begonnen am 10. Jun 2006 · letzter Beitrag vom 11. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Indizes in MySQL

  Alt 10. Jun 2006, 20:40
Datenbank: MySQL • Version: 4 • Zugriff über: irrelevant
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.
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Indizes in MySQL

  Alt 10. Jun 2006, 20:46
Indizes beschleunigen Abfragen. Ein Index ist ein Art Inhaltsverzeichnis der Tabelle, geordnet nach bestimmten Feldern.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Indizes in MySQL

  Alt 10. Jun 2006, 20:57
Zitat von mkinzler:
Indizes beschleunigen Abfragen. Ein Index ist ein Art Inhaltsverzeichnis der Tabelle, geordnet nach bestimmten Feldern.
Das heißt, wenn ich auf ein Feld eine 1:m oder m:n Beziehung habe, sollte ich für dieses einen Index anlegen?
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Indizes in MySQL

  Alt 10. Jun 2006, 21:01
Wenn du z.B. folgendes machst:

SELECT * FROM users WHERE userid=42 Dann reicht ein PRIMARY Index mit autoincrement auf userid.

Wenn du folgendes machst:

SELECT * FROM items WHERE itemname='blubbAND userid=42 Dann wäre ein INDEX über die ersten 10 Bytes von itemname und über userid gut zu gebrauchen.

Konzept verstanden?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Indizes in MySQL

  Alt 10. Jun 2006, 21:03
Also sollte man jedes Feld, das zur Verknüpfung von Einträgen benutzt wird Indizieren?
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Indizes in MySQL

  Alt 10. Jun 2006, 21:04
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Indizes in MySQL

  Alt 10. Jun 2006, 21:05
@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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Indizes in MySQL

  Alt 10. Jun 2006, 21:06
Zitat:
Also sollte man jedes Feld, das zur Verknüpfung von Einträgen benutzt wird Indizieren?
Ja, wenn diese Abfrage öfters kommt ja. Den Indizes beschleunigen die Abfrage, verlangsamen aber die Inserts, da ja alle vorhandenene Indizes aktualisiert werden müßen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Indizes in MySQL

  Alt 10. Jun 2006, 22:14
Danke für eure Antworten!

Zwei Fragen noch:

Zitat von 3_of_8:
@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.
Wie lautet der SQL-Syntax um dies zu erledigen?

Wo liegt der Unterschied zwischen einem "Normalen" Index und einem Fulltext index?
SQL-Code:
ALTER TABLE series ADD INDEX serie_title (serie_title);
ALTER TABLE series ADD FULLTEXT serie_title (serie_title);
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Indizes in MySQL

  Alt 10. Jun 2006, 22:21
Schau halt mal in die MySQL Dokumentation.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz