# Django 5.2.8 documentation

# Bordsytor

En vanlig metod för att optimera prestanda i databassystem är att använda ”tablespaces” för att organisera disklayouten.

Varning

Django skapar inte tablespaces åt dig. Se dokumentationen för din databasmotor för detaljer om hur du skapar och hanterar tablespaces.

## Deklarera tablespaces för tabeller

Ett tablespace kan anges för den tabell som genereras av en modell genom att ange alternativet `db_tablespace` i modellens `class Meta`. Detta alternativ påverkar även tabeller som skapas automatiskt för `ManyToManyField` i modellen.

Du kan använda inställningen `DEFAULT_TABLESPACE` för att ange ett standardvärde för `db_tablespace`. Detta är användbart för att ställa in ett tablespace för de inbyggda Django-apparna och andra applikationer vars kod du inte kan kontrollera.

## Deklarera tablespaces för index

Du kan skicka alternativet `db_tablespace` till en `Index`-konstruktör för att ange namnet på ett tablespace som ska användas för indexet. För index för enstaka fält kan du skicka alternativet `db_tablespace` till en `Field`-konstruktör för att ange ett alternativt tablespace för fältets kolumnindex. Om kolumnen inte har något index ignoreras alternativet.

Du kan använda inställningen `DEFAULT_INDEX_TABLESPACE` för att ange ett standardvärde för `db_tablespace`.

Om `db_tablespace` inte anges och du inte har angett `DEFAULT_INDEX_TABLESPACE`, skapas indexet i samma tablespace som tabellerna.

## Ett exempel

    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")]

I det här exemplet lagras de tabeller som genereras av modellen `TablespaceExample` (dvs. modelltabellen och tabellen many-to-many) i tablespace `tables`. Indexet för fältet name och indexen för tabellen many-to-many lagras i tablespace `indexes`. Fältet `data` skulle också generera ett index, men inget tablespace för det har angetts, så det skulle lagras i modellens tablespace `tables` som standard. Indexet för fältet `shortcut` skulle lagras i tablespace `other_indexes`.

## Stöd för databaser

PostgreSQL och Oracle stöder tablespaces. SQLite, MariaDB och MySQL gör det inte.

När du använder en backend som saknar stöd för tablespaces ignorerar Django alla tablespace-relaterade alternativ.