如果我使用django,我不应该关心像索引等任何MySQl优化? Django会自动创建一切吗?请解释
答案 0 :(得分:2)
答案:你应该关心,但一开始(通常)不是。
Django不会为您处理所有事情,只处理基本/初始索引(如果您使用迁移工具而不是手动创建表)。 索引与将存储在表中的实际数据有关,而不仅仅是表结构,django在创建表时不知道的内容。你可以通过创建独特的约束等来获得“免费”获得的一些索引(假设你使用像你这样的南方工具)而不是真正的优化 - 这时你必须自己做到这一点。
可以通过“告诉”Django应该添加哪些索引来完成一些优化,但是你必须自己指定它。
答案 1 :(得分:0)
不,Django只创建数据库系统所需的索引,例如创建外键时。您必须自己优化数据库,更多信息请参见documentation。
答案 2 :(得分:0)
你可以告诉Django某些模型字段应该用作索引:
https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.Field.db_index
您还可以将列编入索引:
https://docs.djangoproject.com/en/1.10/ref/models/options/#django.db.models.Options.index_together
答案 3 :(得分:-1)
是的,你是对的......使用Django你可以从你的模型(类)生成你的数据库,你必须使用细节继承和类型,但它很容易处理,当然它' s尽可能最佳。