mirror of
https://github.com/jlengrand/bugsink.git
synced 2026-03-10 08:01:17 +00:00
Add index for project-based quota checks
i.e. the code in check_for_thresholds (when the `qs` filters per project)
On SQLite the effect is like so, from:
EXPLAIN QUERY PLAN SELECT COUNT(*) AS "__count" FROM "events_event" WHERE ("events_event"."project_id" = 1 AND "events_event"."digested_at" >= '2025-12-07 15:12:24.479666');
QUERY PLAN
`--SEARCH events_event USING COVERING INDEX events_even_project_ac6fc7_idx (project_id=?)
to
EXPLAIN QUERY PLAN SELECT COUNT(*) AS "__count" FROM "events_event" WHERE ("events_event"."project_id" = 1 AND "events_event"."digested_at" >= '2025-12-07 15:12:24.479666');
QUERY PLAN
`--SEARCH events_event USING COVERING INDEX events_even_project_625413_idx (project_id=? AND digested_at>?)
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("events", "0025_fix_never_evict"),
|
||||||
|
("issues", "0025_alter_grouping_project_alter_issue_project"),
|
||||||
|
("projects", "0016_reset_quota_exceeded_until"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddIndex(
|
||||||
|
model_name="event",
|
||||||
|
index=models.Index(
|
||||||
|
fields=["project", "digested_at"], name="events_even_project_625413_idx"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -162,6 +162,7 @@ class Event(models.Model):
|
|||||||
indexes = [
|
indexes = [
|
||||||
models.Index(fields=["project", "never_evict", "digested_at", "irrelevance_for_retention"]),
|
models.Index(fields=["project", "never_evict", "digested_at", "irrelevance_for_retention"]),
|
||||||
models.Index(fields=["issue", "digested_at"]),
|
models.Index(fields=["issue", "digested_at"]),
|
||||||
|
models.Index(fields=["project", "digested_at"]), # project-wide quota check
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_raw_data(self):
|
def get_raw_data(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user