ich ein Modell haben, wie unten gezeigt,Abfrage ein Objekt mit pk vs benutzerdefinierte object_id
class Person(models.Model):
first_name = models.CharField(max_length=30)
middle_name = models.CharField(max_length=30, blank=True)
last_name = models.CharField(max_length=30)
person_id = models.CharField(max_length=32, blank=True)
wo die person_id auf speichern bevölkert ist, die eine zufällige Hexstring von uuid
erzeugt, die so etwas wie 'E4DC6C20BECA49E6817DB2365924B1EF'
aussehen würde
so meine Frage ist, in einer Datenbank mit einer großen Größe von Objekten, wird die Abfragen
Person.objects.get(pk=10024)
(pk
) vs (person_id
)
Person.objects.get(person_id='E4DC6C20BECA49E6817DB2365924B1EF')
Keinerlei des Verfahrens wird ein Leistungsvorteil in großem Umfang von Daten?
Ich bin nicht sehr bewusst, die Datenbank Interna.
Meine Datenbank ist postgresql
Dies sieht relevant aus (für mysql, aber es gibt einige allgemeine Kommentare in den Antworten): [Gibt es einen echten Leistungsunterschied zwischen INT und VARCHAR Primärschlüssel?] (Http://stackoverflow.com/questions/332300/is -there-a-real-Leistungsdifferenz-zwischen-int-und-varchar-Primärschlüssel – solarissmoke