如何在使用 syncdb 命令创建数据库时强制django使用MYISAM存储引擎?这个page对这个问题没有多大帮助。
MYISAM是完美的选择,因为数据库几乎只用于阅读,而MYISAM比InnoDB快得多。模型中仍然存在一些 models.ForeignKey 字段,但它们仅用于创建主详细信息管理页面。数据库中不需要实际的外键。
答案 0 :(得分:12)
见this page。在OPTIONS
设置中使用DATABASES
变量应该可以解决问题,但将现有数据库迁移到新引擎并不容易(认为您必须重新初始化)。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'OPTIONS': {
"init_command": "SET storage_engine=MYISAM",
}
}
}
答案 1 :(得分:-1)
您应该直接在数据库定义中将存储引擎设置为INNODB,如下所示。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
.....
'STORAGE_ENGINE': 'MYISAM'
}
}
对于新版本,您可以使用:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
.....
'OPTIONS': {
"init_command": "SET storage_engine=MYISAM",
}
}
}