W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
表空間可被指定給特定模型生成的數(shù)據(jù)表,通過(guò)在該模型的 ?class Meta
? 中提供 ?db_tablespace
選項(xiàng)。該選項(xiàng)也影響此模型中為 ManyToManyField 自動(dòng)創(chuàng)建的數(shù)據(jù)表。
你可以用 ?DEFAULT_TABLESPACE
?配置為 ?db_tablespace
?指定一個(gè)默認(rèn)值。這在配置內(nèi)置的 Django 應(yīng)用或其它你無(wú)法修改代碼的應(yīng)用的表空間時(shí)非常有用。
你可以為 ?Index
?構(gòu)造器傳入 ?db_tablespace
?選項(xiàng)指定索引使用的表空間名。對(duì)于單個(gè)字段的索引,你可以向 ?Field
?構(gòu)造器傳入 ?db_tablespace
?選項(xiàng),為字段列索引指定可選的表空間。若此列沒(méi)有索引,會(huì)忽略該選項(xiàng)。
你可以用 ?DEFAULT_INDEX_TABLESPACE
?配置項(xiàng)為 ?db_tablespace
?指定一個(gè)默認(rèn)值。
若未指定 ?db_tablespace
?和 ?DEFAULT_INDEX_TABLESPACE
?,索引會(huì)在與數(shù)據(jù)表相同的表空間中創(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
?模型(即模型表和多對(duì)多表)創(chuàng)建的表會(huì)被存在 ?tables
?表空間。名稱字段和多對(duì)多表的索引會(huì)被存在該 ?indexes
?表空間中。 ?data
?字段也會(huì)生成一個(gè)索引,但因?yàn)椴⑽礊槠渲付ū砜臻g,所以它會(huì)被默認(rèn)存入模型的表空間 ?tables
?中。 ?shortcut
?字段的索引會(huì)被存入 ?other_indexes
?表空間。
PostgreSQL 和 Oracle 支持表空間。而 SQLite, MariaDB 和 MySQL 不支持。
若你使用的后端不支持表空間,Django 會(huì)忽略所有與表空間相關(guān)的選項(xiàng)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: