hoo added a comment. |
There already is a separate table with redirect information (redirect), the page_is_redirect field is mostly for convenience these days, I guess.
We could rewrite the query as follows:
SELECT /* Wikibase\Repo\Store\Sql\SqlEntityIdPager::fetchIds datasets@snapsh... */ page_id,page_title FROM `page` LEFT JOIN redirect ON rd_from = page_id WHERE (page_id > 3128073) AND page_namespace IN ('0','120') AND rd_from IS NULL ORDER BY page_id ASC LIMIT 100;
mysql:wikiadmin@db1082 [wikidatawiki]> EXPLAIN SELECT /* Wikibase\Repo\Store\Sql\SqlEntityIdPager::fetchIds datasets@snapsh... */ page_id,page_title FROM `page` LEFT JOIN redirect ON rd_from = page_id WHERE (page_id > 3128073) AND page_namespace IN ('0','120') AND rd_from IS NULL ORDER BY page_id ASC LIMIT 100; +------+-------------+----------+--------+--------------------+---------+---------+---------------------------+----------+--------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+--------+--------------------+---------+---------+---------------------------+----------+--------------------------------------+ | 1 | SIMPLE | page | range | PRIMARY,name_title | PRIMARY | 4 | NULL | 12836589 | Using where | | 1 | SIMPLE | redirect | eq_ref | PRIMARY | PRIMARY | 4 | wikidatawiki.page.page_id | 1 | Using where; Using index; Not exists | +------+-------------+----------+--------+--------------------+---------+---------+---------------------------+----------+--------------------------------------+ 2 rows in set (0.00 sec)mysql:wikiadmin@db1082 [wikidatawiki]> SHOW SESSION STATUS like 'Hand%'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ | Handler_commit | 1 | | Handler_delete | 0 | | Handler_discover | 0 | | Handler_external_lock | 0 | | Handler_icp_attempts | 0 | | Handler_icp_match | 0 | | Handler_mrr_init | 0 | | Handler_mrr_key_refills | 0 | | Handler_mrr_rowid_refills | 0 | | Handler_prepare | 0 | | Handler_read_first | 0 | | Handler_read_key | 104 | | Handler_read_last | 0 | | Handler_read_next | 102 | | Handler_read_prev | 0 | | Handler_read_rnd | 0 | | Handler_read_rnd_deleted | 0 | | Handler_read_rnd_next | 115 | | Handler_rollback | 0 | | Handler_savepoint | 0 | | Handler_savepoint_rollback | 0 | | Handler_tmp_update | 0 | | Handler_tmp_write | 113 | | Handler_update | 0 | | Handler_write | 0 | +----------------------------+-------+ 25 rows in set (0.00 sec)Would that work for you @jcrespo?
TASK DETAIL
EMAIL PREFERENCES
To: hoo
Cc: Aklapper, Addshore, Marostegui, jcrespo, aude, daniel, hoo, Minhnv-2809, D3r1ck01, Izno, Luke081515, Wikidata-bugs, Mbch331, Jay8g, Krenair
Cc: Aklapper, Addshore, Marostegui, jcrespo, aude, daniel, hoo, Minhnv-2809, D3r1ck01, Izno, Luke081515, Wikidata-bugs, Mbch331, Jay8g, Krenair
_______________________________________________ Wikidata-bugs mailing list Wikidata-bugs@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs