Takeaways from DjangoCon EU 2025 Die DjangoCon EU 2025 fand…

Takeaways from DjangoCon EU 2025
Die DjangoCon EU 2025 fand in Dublin, Irland statt und war eine großartige Veranstaltung. In diesem Blogartikel werde ich einige der interessantesten Dinge teilen, die ich bei der Konferenz gelernt habe.
Datenbankoptimierung
Eine wichtige Erkenntnis war, wie man DB-Reihen in Django sperrt. Die Methode "select_for_update" sperrt eine Reihe, bevor Änderungen vorgenommen werden, um die Datenkonsistenz in gleichzeitigen Umgebungen sicherzustellen.
Ein weiterer wichtiger Punkt war die Verwendung von BigInt-Primärschlüsseln. Es wird empfohlen, immer einen BigInt (64 Bit) oder UUID für Primärschlüssel zu verwenden. Wenn eine Tabelle nahe an der Grenze von 2,1 Milliarden Einträgen ist, können negative Werte verwendet werden, um den Bereich zu verdoppeln, aber dies hat einige Einschränkungen.
Die Partitionierung von DB-Tabellen nach Mandanten wurde ebenfalls diskutiert. Die Verwendung des "PostgresPartitionedModel"-Mixins hilft dabei, Daten in separate PostgreSQL-Partitionen basierend auf einem Wert aufzuteilen und verbessert so die Leistung für große Tabellen.
Ein weiterer interessanter Punkt war die Speicherplatzoptimierung in Postgres-Indizes. Es wird empfohlen, immer "db_index" explizit für Fremdschlüssel festzulegen. Standardmäßig werden Fremdschlüssel indiziert, aber Sie können die Indizes weiter optimieren, indem Sie eine Bedingung zu einem Index hinzufügen, um die Größe des Indexes dramatisch zu reduzieren (bis zu ~99% kleiner).
Leistungstests und -analyse
Die Durchführung von Leistungstests in Pytest wurde als bewährte Methode zur Sicherstellung einer guten Leistung empfohlen. Dabei werden Daten in die Datenbank geladen und die Zeit gemessen, die die Views benötigen, um sicherzustellen, dass die Leistung gut ist oder um Regressionen zu erkennen.
Wenn Ihre DB/App in der Cloud langsamer ist, wird empfohlen, die Geschwindigkeit der Cloud-Festplatte mit der Geschwindigkeit der Festplatte Ihres Laptops zu vergleichen, um festzustellen, ob das Problem an der Hardware oder an der E/A liegt.
Darüber hinaus wurde darauf hingewiesen, dass bestimmte Netzwerkalgorithmen wie TCP_NODELAY oder Nagle's Algorithmus zu Engpässen führen können. Diese können jedoch durch die Deaktivierung von Umgebungsvariablen zur Verbesserung der Leistung deaktiviert werden.
Eine weitere nützliche Methode zur Analyse von Datenbankabfragen über das Django ORM ist die Verwendung von "EXPLAIN ANALYZE SQL", um den Abfrageplan zu generieren. Dadurch können Engpässe erkannt und besser verstanden werden.
Tools und Bibliotheken
Einige empfohlene Tools und Bibliotheken wurden ebenfalls vorgestellt. "strace" ist ein Linux-Dienstprogramm zur Inspektion von Systemaufrufen, die von einem Prozess gemacht werden, und erfordert keine Root-Rechte.
"Django-neopolitan" wurde als nützliche Bibliothek für einfache CRUD-Ansichten empfohlen. Mit "django-auto-prefetch" können verwandte Objekte automatisch vorab abgerufen werden, um die Anzahl der DB-Abfragen zu reduzieren.