2013-03-19 62 views
0

models.pyDjango模型。什麼更快:按字符串或整數過濾?

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) 

所以,我應該使用ReviewStringReviewInteger

+1

我覺得整,但我更喜歡字符串,因爲它很容易閱讀和理解 – catherine 2013-03-19 12:20:47

回答

1

整數索引比varchar快。

雖然只要您在review_type列上有索引,但其性能和速度差別並不重要,因此您不應該在性能方面做出真正的決定。

也許你應該更仔細地選擇一個更適合你的Python代碼,而不是更快的數據庫級別。

問候

+0

謝謝你,現在我可以使用字符串,而不必擔心性能比較差的) – imkost 2013-03-19 13:01:17