zilencer: Add index on RemoteInstallationCount for remote activity.

When profiling the database query in `remote_activity.py`,
push_forwarded_count was identified as an expensive part of
the overall work. Adds an index on RemoteInstallationCount
so this is more efficient.
This commit is contained in:
Lauryn Menard 2024-02-01 15:07:04 +01:00 committed by Tim Abbott
parent 78f90860b2
commit 47a5459637
2 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,21 @@
# Generated by Django 4.2.9 on 2024-02-01 13:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("zilencer", "0057_remoterealm_last_request_timestamp_and_more"),
]
operations = [
migrations.AddIndex(
model_name="remoteinstallationcount",
index=models.Index(
condition=models.Q(("property", "mobile_pushes_forwarded::day")),
fields=["server_id", "end_time"],
name="zilencer_remoteinstallationcount_server_end_time_mobile_pushes_forwarded",
),
),
]

View File

@ -373,6 +373,13 @@ class RemoteInstallationCount(BaseRemoteCount):
name="unique_remote_installation_count_server_id_remote_id",
),
]
indexes = [
models.Index(
fields=["server_id", "end_time"],
condition=Q(property="mobile_pushes_forwarded::day"),
name="zilencer_remoteinstallationcount_server_end_time_mobile_pushes_forwarded",
)
]
@override
def __str__(self) -> str: