【发布时间】:2016-11-20 15:08:57
【问题描述】:
我有一个模型如下图,
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)
保存时填充 person_id 的位置,这是由uuid 生成的随机十六进制字符串,类似于'E4DC6C20BECA49E6817DB2365924B1EF'
所以我的问题是,在包含大量对象的数据库中,查询是否
Person.objects.get(pk=10024)
(pk) 与 (person_id)
Person.objects.get(person_id='E4DC6C20BECA49E6817DB2365924B1EF')
任何一种方法在大规模数据中具有性能优势吗?
我不太了解数据库内部结构。
我的数据库是postgresql
【问题讨论】:
-
这看起来很相关(对于mysql,但答案中有一些通用的cmets):Is there a REAL performance difference between INT and VARCHAR primary keys?
标签: django database query-optimization django-queryset database-performance