Ergebnis 1 bis 6 von 6

Thema: [MySQL] Effektiv mit Indizierungen arbeiten - wie gehts?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat
    Suchmaschienen spucken keine guten Referenzen aus
    Optimizing MySQL: Queries and Indexes; Aber der ist halt in englisch. Da gab es noch einen guten, aber den finde ich leider gerade nicht.

    Zitat Zitat
    Wie verwende ich mit PHP die Indizierungen in MySQL-Tabellen?
    Du kannst über mysql_query() einer Tabelle einen Index hinzufügen, allerdings solltest du das schon bei der Planung und Erstellung einer Tabelle machen.

    Zitat Zitat
    Wie kann ich dadurch die Effektivität und die Geschwindigkeit der Abfragen verbessern/beschleuigen?
    Durch gute Indizes können Abfragen wesentlich beschleunigt werden.

    Zitat Zitat
    Was bringt deren Größe, was sagt ihre "Kardinalität" aus?
    Ok, hier bin ich mir nicht sicher, weil ich schon lange nicht mehr mit SQL gearbeitet hab. Ich glaube aber, dass die Kardinalität hier lediglich angibt, wie viele Einträge der Tabelle tatsächlich im Index vorhanden sind.

    Zitat Zitat
    Eine Tabelle mit Benutzerdaten. Wie kann man die Sinnvoll indizieren? Ich weiß leider noch gar nichts über die Indizen.
    Einen Index hast du schon gesetzt, den Primärschlüssel, den du wahrscheinlich auf das ID-Feld angewendet hast. Über diesen Index verfügt fast jede Tabelle.

    Du könntest auch noch weitere Indizes setzen, aber das hängt davon ab, welche Felder du am häufigsten abfragst.

    Wenn du häufig die Vornamen anfragst, setze für dieses Feld einen Index und deine Abfragen beschleunigen sich.
    Das ganze wird im oben genannten Artikel schön erklärt. Erstellst du für ein Feld einen Index wird intern eine geordnete Tabelle nur mit diesem Feld angelegt. Dadurch muss nicht mehr die ganze Tabelle, sondern nur noch ein Teilbereich dieser abgefragt werden.

  2. #2
    Zitat Zitat von mitaki Beitrag anzeigen
    Optimizing MySQL: Queries and Indexes; Aber der ist halt in englisch. Da gab es noch einen guten, aber den finde ich leider gerade nicht.
    Mhmm, der ist ja nicht so lang, anschauen werde ich ihn mal.

    Zitat Zitat
    Du kannst über mysql_query() einer Tabelle einen Index hinzufügen, allerdings solltest du das schon bei der Planung und Erstellung einer Tabelle machen.
    Ja, klar. Erläuterung der Frage folgt unten...

    Zitat Zitat
    Durch gute Indizes können Abfragen wesentlich beschleunigt werden.
    ^^ Ja, das war mir jetzt schon bekannt, ich dachte eher an das "WIE". Aber ist nicht soo, wichtig, wichtiger ist, das es funktioniert.

    Zitat Zitat
    Wenn du häufig die Vornamen anfragst, setze für dieses Feld einen Index und deine Abfragen beschleunigen sich. [...] Erstellst du für ein Feld einen Index wird intern eine geordnete Tabelle nur mit diesem Feld angelegt. Dadurch muss nicht mehr die ganze Tabelle, sondern nur noch ein Teilbereich dieser abgefragt werden.
    Aber ich muss bei der query keine anderen Befehle eintippen, nur normales SELECT und anschließend die Felder?
    Der nimmt dann automatisch die "Schlüssel-Tabelle"?

  3. #3
    Zitat Zitat von Bluescreen Beitrag anzeigen
    ^^ Ja, das war mir jetzt schon bekannt, ich dachte eher an das "WIE". Aber ist nicht soo, wichtig, wichtiger ist, das es funktioniert.
    Wie sollte auch im Artikel stehen^^

    Zitat Zitat von Bluescreen Beitrag anzeigen
    Aber ich muss bei der query keine anderen Befehle eintippen, nur normales SELECT und anschließend die Felder?
    Der nimmt dann automatisch die "Schlüssel-Tabelle"?
    Nein, du führst die SELECT-Abfrage ganz normal durch. Wenn ein Index vorhanden ist, wird dieser auch verwendet. Dazu findest du im Artikel auch den Hinweis auf EXPLAIN, um deine Abfragen genauer untersuchen zu können.

  4. #4
    Wenn ich eine Abfrage durchführen möchte bei der mehrere Zeilen ausgewählt werden sollen, bei denen aber nicht ein Element immer gleich ist, sondern vereinfacht:

    Die Tabellen-Zeilen, dessen Atribut "ID" die Werte "1", "2" oder "3" sollen ausgewählt werden.

    Krieg ich das in eine SELECT Abfrage (Wie?), oder muss ich alle einzeln durchführen? Wenn "ID" Indiz ist, wird es automatisch verwendet?

  5. #5
    Zitat Zitat
    Wenn ich eine Abfrage durchführen möchte bei der mehrere Zeilen ausgewählt werden sollen, bei denen aber nicht ein Element immer gleich ist, sondern vereinfacht:
    Die Anzahl der Zeilen spielt keine Rolle, nur die Anzahl der Attribute, die ein Index umfasst; ein Index(At,tri,but) umfasst zwar auch At,tri und At, aber nicht tri,but.

    Zitat Zitat
    Die Tabellen-Zeilen, dessen Attribut "ID" die Werte "1", "2" oder "3" sollen ausgewählt werden.

    Krieg ich das in eine SELECT Abfrage (Wie?), oder muss ich alle einzeln durchführen? Wenn "ID" Indiz ist, wird es automatisch verwendet?
    Ich denke WHERE ID=1 OR ID=2 OR ID=3; (plumper Abfrageversuch) reicht da, um den Index zu verwenden.
    ID ist in der Regel der Primärschlüssel, dieser ist selbst ein Index und wird daher bei eintsprechenden Abfragen auch verwendet.

    Indizes werden immer Automatisch verwendet, sie mssen nur manuell erstellt werden

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •