mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
perf: tweak some search queries
We currently sorting on two columns in different tables which is quite expensive in terms of performance: MariaDB is first merging the data into some temporary table to apply the sorting and record limiting. We can tweak a couple of these queries by changing the "order by" clause such that they refer to columns within the same table (PackageBases). So instead performing the second sorting on "Packages.Name", we do this on "PackageBases.Name" instead. This should still be "good enough" to produce properly sorted results. Signed-off-by: moson-mo <mo-son@mailbox.org>
This commit is contained in:
parent
e2c113caee
commit
c41f2e854a
1 changed files with 3 additions and 3 deletions
|
@ -195,13 +195,13 @@ class PackageSearch:
|
|||
|
||||
def _sort_by_votes(self, order: str):
|
||||
column = getattr(models.PackageBase.NumVotes, order)
|
||||
name = getattr(models.Package.Name, order)
|
||||
name = getattr(models.PackageBase.Name, order)
|
||||
self.query = self.query.order_by(column(), name())
|
||||
return self
|
||||
|
||||
def _sort_by_popularity(self, order: str):
|
||||
column = getattr(models.PackageBase.Popularity, order)
|
||||
name = getattr(models.Package.Name, order)
|
||||
name = getattr(models.PackageBase.Name, order)
|
||||
self.query = self.query.order_by(column(), name())
|
||||
return self
|
||||
|
||||
|
@ -236,7 +236,7 @@ class PackageSearch:
|
|||
|
||||
def _sort_by_last_modified(self, order: str):
|
||||
column = getattr(models.PackageBase.ModifiedTS, order)
|
||||
name = getattr(models.Package.Name, order)
|
||||
name = getattr(models.PackageBase.Name, order)
|
||||
self.query = self.query.order_by(column(), name())
|
||||
return self
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue