DryORM
Code
Result
no cache
Django 6.0
Django 5.2.8
Django 4.2.26 LTS
SQLAlchemy 2.0
Prisma 6.3
SQLite
PostgreSQL 17.4
PostGIS 3.5 (PostgreSQL 16)
MariaDB 11.4.5
Select a template
django
sqlalchemy
prisma
from django.db import models, connection class Employee(models.Model): business_subunit = models.CharField(max_length=50) stream = models.CharField(max_length=50) department = models.CharField(max_length=50) class Meta: indexes = [ models.Index(fields=["business_subunit"]), models.Index(fields=["business_subunit", "stream"]), models.Index(fields=["business_subunit", "stream", "department"]), ] def run(): # Bootstrap demo data for i in range(5): Employee.objects.create( business_subunit="BU1", stream="StreamA", department=f"Dept{i}", ) for i in range(5): Employee.objects.create( business_subunit="BU2", stream="StreamB", department=f"Dept{i}", ) # Helper to run PostgreSQL EXPLAIN def explain(queryset): sql, params = queryset.query.sql_with_params() full_sql = "EXPLAIN " + sql with connection.cursor() as cursor: cursor.execute(full_sql, params) rows = cursor.fetchall() print(f"Query: {sql}") for row in rows: print(row[0]) # Queries to check index usage qs1 = Employee.objects.filter(business_subunit="BU1") explain(qs1) qs2 = Employee.objects.filter(business_subunit="BU1", stream="StreamA") explain(qs2) qs3 = Employee.objects.filter(business_subunit="BU1", stream="StreamA", department="Dept1") explain(qs3)
Output
Show Template
No output.
Queries
INSERT
I
UPDATE
U
SELECT
S
DELETE
D
DDL
D
TCL
T
Queries
Q
(
0
)
No queries.
✖ Close
Save & Share
✖
private?
Save
Save & Copy