HomePhabricator

API: Add STRAIGHT_JOIN to ApiQueryUserContribs to avoid planner oddness

Authored by Anomie on Apr 23 2019, 6:02 PM.

Description

API: Add STRAIGHT_JOIN to ApiQueryUserContribs to avoid planner oddness

For some unknown reason, when the actor table has few enough rows (or
few enough compared to revision_actor_temp) MariaDB 10.1.37 decides it
makes more sense to fetch everything from actor + revision_actor_temp
and filesort rather than fetching the limited number of rows from
revision_actor_temp.

We can work around it by telling it to not reorder the query, but then
(unlike in I9da981c0) we also have to reorder it ourselves to put
revision_actor_temp first instead of revision.

Bug: T221511
Change-Id: Ic63875b26a051a2da58374d5d76c95a6fa8ecc8e

Details