MySQL: CHAR-Feld als Primary Key?



  • Hi,

    bevor ich mir meine DB zerschieße frage ich lieber mal nach:

    Kann ich eine Column, die als CHAR(20) definiert ist und tatsächlich eindeutige Werte enthält als Primary Key verwenden?

    Bisher habe ich dafür eine eigene INT-Spalte. Nach dem aber immer nach dem CHAR-Wert gesucht wird, dürften die Abfragen schneller werden, wenn diese spalte auch der Key ist ... so fern das geht.



  • Hallo Blarg,

    du kannst auf jeden Fall auch CHAR(20) als Primärschlüssel verwenden. Aber ob die Abfragen dann schneller abgearbeitet werden würde ich so nicht unterschreiben. Bei joins z.B. nehme ich mal an, dass eine Version mit INT-Schlüssel schneller abgearbeitet wird, als eine Version mit CHAR(20)-Schlüssel.
    Außerdem hat die Zeichenkette den Nachteil, dass du ggf. auf Groß-/Kleinschreibung (und Tippfehler) achten musst.

    Viele Grüße,
    MaBa



  • Wenn du immer in dem Textfeld suchen mußt kannst du doch darüber auch ein Index legen. Selektiv sollte er ja wohl sein wenn die Werte tatsächlich eindeutig sind.


Anmelden zum Antworten