2017-07-16 86 views
1

就像標題說的那樣,我如何在django模型的字段中指定我想要的索引類型。如何在django中指定索引的類型? (btree vs hash等)

class Person: 
    ... 
    age = models.IntegerField(db_index=True) 

但現在是什麼?我如何確保它是btree索引而不是hash。抑或是這一切都爲我們自動完成的,還有的是Django使用的選擇「最優指數型」

+0

Django的犯規實現這個願望你,這取決於您的數據庫是什麼索引它爲默認,默認索引是當你db_index =真正的模型 – Exprator

+0

@Exprator你知道使用任何好的資源g爲mysql中的每個字段類型設置默認索引類型? – AlanSTACK

+0

遵循一個項目的索引,否則這將是一個問題,如果您對所有字段和表進行不同的索引, – Exprator

回答

1

Django的默認創建btree索引一些大的表,只要你指定index=True

https://docs.djangoproject.com/en/1.11/ref/models/indexes/

我注意你正在使用MySQL;但如果你使用PostgreSQL,你可以在某些類型的字段中指定某些其他的索引類型:

https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/indexes/

這個答案讓你如何能覆蓋在MySQL中btree默認信息,你應該永遠需要:

https://stackoverflow.com/a/3288059/1394697

相關問題