---
title: "Bordsytor"
version: 6.0
locale: sv
source: https://docs.djangoproject.com/sv/6.0/topics/db/tablespaces/
canonical: https://djangodocs.dev/sv/6.0/topics/db/tablespaces/
---
# Bordsytor

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

> **Warning**
>
> 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`](/sv/6.0/ref/models/options/#django.db.models.Options.db_tablespace) i modellens `class Meta`. Detta alternativ påverkar även tabeller som skapas automatiskt för [`ManyToManyField`](/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField) i modellen.

Du kan använda inställningen [`DEFAULT_TABLESPACE`](/sv/6.0/ref/settings/#std-setting-DEFAULT_TABLESPACE) för att ange ett standardvärde för [`db_tablespace`](/sv/6.0/ref/models/options/#django.db.models.Options.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`](/sv/6.0/ref/models/indexes/#django.db.models.Index.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`](/sv/6.0/ref/models/fields/#django.db.models.Field.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`](/sv/6.0/ref/settings/#std-setting-DEFAULT_INDEX_TABLESPACE) för att ange ett standardvärde för [`db_tablespace`](/sv/6.0/ref/models/fields/#django.db.models.Field.db_tablespace).

Om [`db_tablespace`](/sv/6.0/ref/models/fields/#django.db.models.Field.db_tablespace) inte anges och du inte har angett [`DEFAULT_INDEX_TABLESPACE`](/sv/6.0/ref/settings/#std-setting-DEFAULT_INDEX_TABLESPACE), skapas indexet i samma tablespace som tabellerna.

## Ett exempel

```python
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.
