EBernhardson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/315530

Change subject: Issue less than 10 OR's in a single query
......................................................................

Issue less than 10 OR's in a single query

MySQL has known issues of performing IN's against a large set of items.
Our DBA suggested limiting this to less than 10 OR's to keep from
hitting the issue.

This still issues against the 'vslow' database until we've verified this
actually fixes the issue.

Bug: T143932
Change-Id: I679e76676c2624735b2d0d2613585c3011992a7f
---
M includes/BuildDocument/RedirectsAndIncomingLinks.php
1 file changed, 9 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CirrusSearch 
refs/changes/30/315530/1

diff --git a/includes/BuildDocument/RedirectsAndIncomingLinks.php 
b/includes/BuildDocument/RedirectsAndIncomingLinks.php
index aaa35a4..fcbf4a3 100644
--- a/includes/BuildDocument/RedirectsAndIncomingLinks.php
+++ b/includes/BuildDocument/RedirectsAndIncomingLinks.php
@@ -90,15 +90,16 @@
                        ], LIST_AND );
                }
 
-               $condition = $dbr->makeList( $conditions, LIST_OR );
-
-               $res = $dbr->selectField( 'pagelinks', 'count(1)', $condition, 
__METHOD__, [
-                       'USE INDEX' => 'pl_namespace',
-               ]);
-               if ( $res === false ) {
-                       return null;
+               $count = 0;
+               foreach ( array_chunk( $conditions, 9 ) as $chunk ) {
+                       $condition = $dbr->makeList( $chunk, LIST_OR );
+                       $res = $dbr->selectField( 'pagelinks', 'count(1)', 
$condition, __METHOD__ );
+                       if ( $res === false ) {
+                               return null;
+                       }
+                       $count += (int) $res;
                }
 
-               return (int) $res;
+               return $count;
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/315530
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I679e76676c2624735b2d0d2613585c3011992a7f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CirrusSearch
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <ebernhard...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to