Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么要删除django数据库选项';s";init_命令集引擎=INNODB";创建表之后?_Mysql_Django_Innodb - Fatal编程技术网

Mysql 为什么要删除django数据库选项';s";init_命令集引擎=INNODB";创建表之后?

Mysql 为什么要删除django数据库选项';s";init_命令集引擎=INNODB";创建表之后?,mysql,django,innodb,Mysql,Django,Innodb,上的文件说: 另一个选项是在创建表之前使用MySQLdb的init_命令选项: DATABASE_OPTIONS = { "init_command": "SET storage_engine=INNODB", } 这将设置连接到数据库时的默认存储引擎。 创建表后,应删除此选项,如下所示: 它将只在表创建期间需要的查询添加到每个 数据库连接 有人知道为什么在创建表后必须删除此选项吗?通常权限和设置是基于树的。会话的设置将是指向比您高一级的默认设置的指针。您的会话设置将已经创建,并且在第一

上的文件说:

另一个选项是在创建表之前使用MySQLdb的init_命令选项:

DATABASE_OPTIONS = {
   "init_command": "SET storage_engine=INNODB",
}
这将设置连接到数据库时的默认存储引擎。 创建表后,应删除此选项,如下所示: 它将只在表创建期间需要的查询添加到每个 数据库连接


有人知道为什么在创建表后必须删除此选项吗?

通常权限和设置是基于树的。会话的设置将是指向比您高一级的默认设置的指针。您的会话设置将已经创建,并且在第一次连接时仅引用默认设置

修改设置时,例如通过设置存储引擎值,可以创建所有设置的新副本并更改一个值(如在Apache中),也可以向树中添加另一层,解析值时必须签入该层。实际上我不确定MySQL使用哪一种,但不管怎样,如果您不需要这个设置,您不应该在每次往返中都设置它

如果您确实相对频繁地需要它,那么它可能值得性能的提升。PHP中也出现了类似的问题。您不想在PHP代码中修改PHP include path之类的变量,这会增加大量开销


Jacob

如果您有其他选择,例如:

数据库_选项={ “初始化命令”:“设置存储引擎=INNODB,等待超时=30,时区=…”, }


那么,保留默认的存储引擎设置也无妨。

从django 1.2开始,语法已经更改

DATABASES = { 
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '',                      
    'USER': '',     
    'PASSWORD': '',
    'OPTIONS': {
           "init_command": "SET storage_engine=INNODB",
    }   
  }   
}

删除此选项以提高效率—您无需在每次连接到数据库时设置存储引擎,仅当您创建表时(即syncdb、south)