Add more indexes and optimize usage

This commit is contained in:
2026-01-18 14:45:39 +01:00
parent ec470ac0a7
commit 44a965eb62
8 changed files with 324 additions and 3 deletions

View File

@@ -74,6 +74,18 @@ class Consist(BaseModel):
class Meta:
ordering = ["company", "-creation_time"]
indexes = [
# Index for published filtering
models.Index(fields=["published"], name="consist_published_idx"),
# Index for scale filtering
models.Index(fields=["scale"], name="consist_scale_idx"),
# Index for company filtering
models.Index(fields=["company"], name="consist_company_idx"),
# Composite index for published+scale filtering
models.Index(
fields=["published", "scale"], name="consist_pub_scale_idx"
),
]
class ConsistItem(models.Model):
@@ -89,9 +101,19 @@ class ConsistItem(models.Model):
constraints = [
models.UniqueConstraint(
fields=["consist", "rolling_stock"],
name="one_stock_per_consist"
name="one_stock_per_consist",
)
]
indexes = [
# Index for filtering by load status
models.Index(fields=["load"], name="consist_item_load_idx"),
# Index for ordering
models.Index(fields=["order"], name="consist_item_order_idx"),
# Composite index for consist+load filtering
models.Index(
fields=["consist", "load"], name="consist_item_con_load_idx"
),
]
def __str__(self):
return "{0}".format(self.rolling_stock)