Заставить django создавать таблицы с помощью MYISAM storage engine
Как заставить django использовать MYISAM storage engine при создании базы данных с помощью команды syncdb ? Эта страница не очень помогает пролить свет на этот вопрос.
MYISAM-идеальный выбор, так как база данных почти используется только для чтения, и MYISAM значительно быстрее, чем InnoDB. Есть еще некоторые модели .Поля ForeignKey в модели, но они используются только для создания главных страниц администратора сведений. Нет необходимости в том, чтобы иметь фактическое внешние ключи в базе данных.
2 ответа:
Смотритеэту страницу . Использование переменной
OPTIONS
в вашей настройкеDATABASES
должно сделать трюк, но перенос существующей базы данных на новый движок не так прост (думаю, вам придется заново инициализировать).DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '', 'USER': '', 'PASSWORD': '', 'OPTIONS': { "init_command": "SET storage_engine=MYISAM", } } }
Вы должны установить механизм хранения как 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", } } }