0

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

两个表 (ReviewStringReviewInteger) 在数据库中都包含相同的数据。我想知道,这两个字符串之间是否有任何性能差异:

ReviewString.objects.filter(review_type='ok')
ReviewInteger.objects.filter(review_type=0)

那么,我应该使用ReviewStringorReviewInteger吗?

4

1 回答 1

1

整数索引比 varchar 索引快。

虽然,只要您在 review_type 列上有一个索引,性能和速度差异实际上并不显着,因此您不应该真正在性能方面做出决定。

也许您应该更加小心地选择更适合您的 Python 代码的代码,而不是在数据库级别更快的代码。

问候

于 2013-03-19T12:34:46.327 回答