Guten Abend,
ich arbeite derzeit an einer Facebook-Anwendung und muss die übergebenen Benutzer-IDs in einer MySQL-Datenbank abspeichern.
Da jede ID nur ein Mal vorkommt, kann ich sie prinzipiell als Primärschlüssel speichern. Meine Befürchtung ist jedoch, dass die MySQL-Engine zum durchsuchen der DB dann länger braucht, da die IDs weder in chronologischer Reihenfolge, noch vollständig sind (zwischen zwei Nummern kann eine Differenz von mehreren Tausenden bestehen, schließlich habe ich nicht alle Facebook-IDs).
Vor allem diese großen Lücken zwischen den IDs lassen mich zweifeln. Die Position eines DB-Eintrags in einer MySQL-Datei wird ja - soweit ich weiß - aus der Größe eines Eintrags und der ID errechnet. Das ist nicht möglich, wenn tausende Einträge fehlen.
Jetzt könnte ich auch eine weitere Spalte anlegen, in welcher ich eine eigene ID-Liste anlege und als Primärschlüssel setze.
Doch bin der Meinung, dass das eine Form von Redundanz ist. Beide Spalten haben eigentlich den selben Zweck.
Hat jemand eine bessere Idee oder kann mich über die Performance der ersteren Methode aufklären?
MfG
Vitus
ich arbeite derzeit an einer Facebook-Anwendung und muss die übergebenen Benutzer-IDs in einer MySQL-Datenbank abspeichern.
Da jede ID nur ein Mal vorkommt, kann ich sie prinzipiell als Primärschlüssel speichern. Meine Befürchtung ist jedoch, dass die MySQL-Engine zum durchsuchen der DB dann länger braucht, da die IDs weder in chronologischer Reihenfolge, noch vollständig sind (zwischen zwei Nummern kann eine Differenz von mehreren Tausenden bestehen, schließlich habe ich nicht alle Facebook-IDs).
Vor allem diese großen Lücken zwischen den IDs lassen mich zweifeln. Die Position eines DB-Eintrags in einer MySQL-Datei wird ja - soweit ich weiß - aus der Größe eines Eintrags und der ID errechnet. Das ist nicht möglich, wenn tausende Einträge fehlen.
Jetzt könnte ich auch eine weitere Spalte anlegen, in welcher ich eine eigene ID-Liste anlege und als Primärschlüssel setze.
Code:
Facebook-ID | Eigene-ID
------------------------------
123456789123 | 1
892545986921 | 2
345892046512 | 3
Hat jemand eine bessere Idee oder kann mich über die Performance der ersteren Methode aufklären?
MfG
Vitus
Zuletzt bearbeitet: