aji*_*tix 11 mysql django innodb
有关创建数据库表的文档说:
另一个选择是在创建表之前使用MySQLdb的init_command选项:
DATABASE_OPTIONS = {
"init_command": "SET storage_engine=INNODB",
}
Run Code Online (Sandbox Code Playgroud)
这会在连接到数据库时设置默认存储引擎.创建表后,应删除此选项,因为它只在表创建期间向每个数据库连接添加一个查询.
有谁知道为什么有必要在创建表后删除此选项?
从django 1.2开始语法发生了变化
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'OPTIONS': {
"init_command": "SET storage_engine=INNODB",
}
}
}
Run Code Online (Sandbox Code Playgroud)
通常,权限和设置是基于树的。您的会话设置将指向比您的设置高一级的默认设置。您的会话设置将已经创建,并且在您首次连接时仅引用默认设置。
当您修改设置时,例如通过设置 storage_engine 值,您要么创建所有设置的新副本并更改一个值(如在 Apache 中),要么向树中添加另一层,在解析时必须签入该层价值观。我实际上不确定 MySQL 使用哪一个,但无论哪种方式,如果您不需要此设置,则不应在每次往返时都设置它。
如果您确实相对频繁地需要它,那么性能损失可能是值得的。PHP 中也出现类似的问题。您不想修改 PHP 代码中的 PHP 包含路径等变量,这会增加大量开销。
雅各布
| 归档时间: |
|
| 查看次数: |
6038 次 |
| 最近记录: |