models.py
:
class ReviewString(models.Model):
REVIEW_TYPES = (
('bad', 'bad'),
('ok', 'ok'),
('good', 'good')
)
review_type = models.CharField(max_length=50, choices=REVIEW_TYPES)
# other fields here
class ReviewInteger(models.Model):
REVIEW_TYPES = (
('bad', -1),
('ok', 0),
('good', 1)
)
review_type = models.IntegerField(choices=REVIEW_TYPES)
# other fields here
两个表(ReviewString
和ReviewInteger
)在数据库中包含相同的数据。
我想知道,如果这两个字符串之间存在任何性能差异:
ReviewString.objects.filter(review_type='ok')
ReviewInteger.objects.filter(review_type=0)
那么,我应该使用ReviewString
还是ReviewInteger
?
答案 0 :(得分:1)
整数索引比varchar快。
虽然,只要你的review_type列上有一个索引,它的性能和速度差异就非常重要,因此你不应该真正做出性能方面的决定。
也许你应该更谨慎地选择一个更适合你的python代码的代码,而不是在数据库级别更快的代码。
问候