W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
表空間可被指定給特定模型生成的數據表,通過在該模型的 ?class Meta
? 中提供 ?db_tablespace
選項。該選項也影響此模型中為 ManyToManyField 自動創(chuàng)建的數據表。
你可以用 ?DEFAULT_TABLESPACE
?配置為 ?db_tablespace
?指定一個默認值。這在配置內置的 Django 應用或其它你無法修改代碼的應用的表空間時非常有用。
你可以為 ?Index
?構造器傳入 ?db_tablespace
?選項指定索引使用的表空間名。對于單個字段的索引,你可以向 ?Field
?構造器傳入 ?db_tablespace
?選項,為字段列索引指定可選的表空間。若此列沒有索引,會忽略該選項。
你可以用 ?DEFAULT_INDEX_TABLESPACE
?配置項為 ?db_tablespace
?指定一個默認值。
若未指定 ?db_tablespace
?和 ?DEFAULT_INDEX_TABLESPACE
?,索引會在與數據表相同的表空間中創(chuàng)建。
class TablespaceExample(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")
class Meta:
db_tablespace = "tables"
indexes = [models.Index(fields=['shortcut'], db_tablespace='other_indexes')]
本例中, ?TablespaceExample
?模型(即模型表和多對多表)創(chuàng)建的表會被存在 ?tables
?表空間。名稱字段和多對多表的索引會被存在該 ?indexes
?表空間中。 ?data
?字段也會生成一個索引,但因為并未為其指定表空間,所以它會被默認存入模型的表空間 ?tables
?中。 ?shortcut
?字段的索引會被存入 ?other_indexes
?表空間。
PostgreSQL 和 Oracle 支持表空間。而 SQLite, MariaDB 和 MySQL 不支持。
若你使用的后端不支持表空間,Django 會忽略所有與表空間相關的選項。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: