mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Specify explicit joins for package search
Refactor the query to use explicit LEFT JOINs, which appears to be handled by MySQL in a saner fashion than the previous implicit join syntax. This is part two in a slight fixup for observed slow queries in the production environment. With the new indexes and this fixup, a particular iteration of this query will examine only 13346 rows instead of 272060. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Loui Chang <louipc.ist@gmail.com>
This commit is contained in:
parent
e2b3bd1c37
commit
1ceeda8ab5
1 changed files with 6 additions and 6 deletions
|
@ -437,19 +437,19 @@ function pkg_search_page($SID="") {
|
||||||
Packages.Name, Packages.Version, Packages.Description, Packages.NumVotes,
|
Packages.Name, Packages.Version, Packages.Description, Packages.NumVotes,
|
||||||
Packages.ID, Packages.OutOfDate
|
Packages.ID, Packages.OutOfDate
|
||||||
|
|
||||||
FROM PackageCategories, PackageLocations, Packages
|
FROM Packages
|
||||||
LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID) ";
|
LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID) ";
|
||||||
|
|
||||||
if ($SID) {
|
if ($SID) {
|
||||||
$q .= "LEFT JOIN PackageVotes
|
$q .= "LEFT JOIN PackageVotes
|
||||||
ON (Packages.ID = PackageVotes.PackageID AND PackageVotes.UsersID = $myuid)
|
ON (Packages.ID = PackageVotes.PackageID AND PackageVotes.UsersID = $myuid)
|
||||||
LEFT JOIN CommentNotify
|
LEFT JOIN CommentNotify
|
||||||
ON (Packages.ID = CommentNotify.PkgID AND CommentNotify.UserID = $myuid) ";
|
ON (Packages.ID = CommentNotify.PkgID AND CommentNotify.UserID = $myuid) ";
|
||||||
}
|
}
|
||||||
$q .= "WHERE
|
$q .= "LEFT JOIN PackageCategories
|
||||||
Packages.CategoryID = PackageCategories.ID
|
ON (Packages.CategoryID = PackageCategories.ID)
|
||||||
AND Packages.LocationID = PackageLocations.ID
|
LEFT JOIN PackageLocations
|
||||||
AND Packages.DummyPkg = 0 ";
|
ON (Packages.LocationID = PackageLocations.ID)
|
||||||
|
WHERE Packages.DummyPkg = 0 ";
|
||||||
|
|
||||||
// TODO: possibly do string matching on category and
|
// TODO: possibly do string matching on category and
|
||||||
// location to make request variable values more sensible
|
// location to make request variable values more sensible
|
||||||
|
|
Loading…
Add table
Reference in a new issue