From b2f1c8022e4ea935ef9bf385c9c45181724d2d9a Mon Sep 17 00:00:00 2001 From: Dimitri Yatsenko Date: Fri, 30 Jan 2026 12:24:17 -0600 Subject: [PATCH] perf: Add composite index on jobs table for efficient job fetching Add INDEX (status, priority, scheduled_time) to optimize the critical populate query: SELECT ... FROM jobs WHERE status='pending' AND scheduled_time <= NOW() ORDER BY priority ASC, scheduled_time ASC This index covers the WHERE clause and ORDER BY, eliminating table scans and filesorts for large job queues. Co-Authored-By: Claude Opus 4.5 --- src/datajoint/jobs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/datajoint/jobs.py b/src/datajoint/jobs.py index d54109db5..97cfafb15 100644 --- a/src/datajoint/jobs.py +++ b/src/datajoint/jobs.py @@ -168,6 +168,7 @@ def _generate_definition(self) -> str: pid=0 : int32 connection_id=0 : int64 version="" : varchar(64) + INDEX (status, priority, scheduled_time) """ def _get_fk_derived_pk_attrs(self) -> list[tuple[str, str]]: