Your feedback will help guide future efforts.
语言:zh-hans文档版本:3.2优化数据库表现的常见方式是利用表空间 来组织磁盘布局。
警告
Django 没有为你创建表空间。请参考你使用的数据库引擎的文档了解如何创建和管理表空间。
为表格申明表空间¶
表空间可被指定给特定模型生成的数据表,通过在该模型的classMeta中提供db_tablespace选项。该选项也影响此模型中为ManyToManyField自动创建的数据表。
你可以用DEFAULT_TABLESPACE配置为db_tablespace指定一个默认值。这在配置内置的 Django 应用或其它你无法修改代码的应用的表空间时非常有用。
为索引申明表空间¶
你可以为Index构造器传入db_tablespace选项指定索引使用的表空间名。对于单个字段的索引,你可以向Field构造器传入db_tablespace选项,为字段列索引指定可选的表空间。若此列没有索引,会忽略该选项。
一个例子¶
classTablespaceExample(models.Model):name=models.CharField(max_length=30,db_index=True,db_tablespace="indexes")data=models.CharField(max_length=255,db_index=True)shortcut=models.CharField(max_length=7)edges=models.ManyToManyField(to="self",db_tablespace="indexes")classMeta:db_tablespace="tables"indexes=[models.Index(fields=['shortcut'],db_tablespace='other_indexes')]
本例中,TablespaceExample模型(即模型表和多对多表)创建的表会被存在tables表空间。名称字段和多对多表的索引会被存在该indexes表空间中。data字段也会生成一个索引,但因为并未为其指定表空间,所以它会被默认存入模型的表空间tables中。shortcut字