Indexe richtig setzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Indexe richtig setzen

    Hallo liebe Wissenden,

    wer kann mir denn bitte mal für Dummies erklären was im PHPMyAdmin die drei felder Primary Index und Unique bedeuten.

    Ich weiß, dass ich mit Index ein Feld markieren kann, dass bevorzugt durchsucht wird, um Abfragen zu beschleunigen.
    Wenn ich eine Adressdatenbank habe und quasi nach jedem Feld suchen könnte, macht es doch kaum Sinn alle Felder als Index zu markieren.
    Bis wohin ist das Indexieren ratsam?

    Viele Grüße, Andi

  • #2
    Primary Index bedeutet primärer Index oder Hauptindex
    Unique bedeutet eindeutig, d.h. es gibt keine mehrfachen Einträge in dieser Spalte. Z.B. für eine eindeutige ID.

    Wie Du die indizes zu setzen hast hängt natürlich einerseits von Deinem Datenmodell, den Daten selbst und andererseits von der Applikation ab.

    So global kann man nicht sagen was gut oder weniger gut ist.

    Über welche Datenfelder wird in erster Linie gesucht? Eine interne ID wird sicher ein primärer unique index sein. Über diese interne ID werden ja die ganzen Relationen intern aufgelöst.

    Mach mal drei Indizes über die drei Felder der Tabelle über die am öftesten zugegriffen wird.

    Postleitzahl und Ort wird ja in einer extra Tabelle liegen oder? Dort ebenfalls drei Indizes. Eine über die ID einen über die PLZ und einen über den Ortsnamen.

    Wenn Du in der Adressdatenbank Telefonnummern hast wird es kaum Sinn machen, auch wenn Du darüber zugreifst einen Index zu legen, denn es wird vmtl. selten über die Telefonnummer recherchiert.

    Genügt Dir diese Antwort so halbwegs?

    Kommentar


    • #3
      Danke, dass hilft mir schon mal weiter.

      Nur eine kurze Frage noch:
      Du spricht da von einem Primary Index, ich habe aber zwei Felder zum Anklicken Primary und Index.
      Wass passiert wenn ich beide anklicke und was wenn nur einen von beiden?

      Mehr Fragen habe ich dann auch nicht mehr :-)

      Danke schön noch mal.

      Grüße, Andi

      Kommentar


      • #4
        Aus dem MySQL Manual:

        A PRIMARY KEY is a unique KEY with the extra constraint that all key columns must be defined as NOT NULL. In MySQL the key is named PRIMARY. A table can have only one PRIMARY KEY. If you don't have a PRIMARY KEY and some applications ask for the PRIMARY KEY in your tables, MySQL will return the first UNIQUE key, which doesn't have any NULL columns, as the PRIMARY KEY.

        A PRIMARY KEY can be a multiple-column index. However, you cannot create a multiple-column index using the PRIMARY KEY key attibute in a column specification. Doing so will mark only that single column as primary. You must use the PRIMARY KEY(index_col_name, ...) syntax.

        Ich weiß leider nicht was phpMyAdmin in diesem fall tut und wie er es dann tut. Aber probiere es aus, man sieht ja das Ergebnis.

        (Key und Index ist dasselbe)

        Kommentar


        • #5
          Ja danke, jetzt blicke ich wenigstens etwas durch. :-)

          Kommentar

          Lädt...
          X