SELECT bt_address,bt_user_text,bt_user,bt_auto,bt_range_start,bt_range_end,bl_id, block_by_actor.actor_user AS `bl_by`, block_by_actor.actor_name AS `bl_by_text`, bl_timestamp,bl_anon_only,bl_create_account,bl_enable_autoblock,bl_expiry,bl_deleted, bl_block_email,bl_allow_usertalk,bl_sitewide, comment_bl_reason.comment_text AS `bl_reason_text`, comment_bl_reason.comment_data AS `bl_reason_data`, comment_bl_reason.comment_id AS `bl_reason_cid`, (SELECT 1 FROM `block_target` `hu_block_target` JOIN `block` `hu_block` ON ((hu_block.bl_target=hu_block_target.bt_id)) WHERE (hu_block_target.bt_user=block_target.bt_user) AND hu_block.bl_deleted = 1 ) IS NOT NULL AS `hu_deleted` FROM `block` JOIN `actor` `block_by_actor` ON ((actor_id=bl_by_actor)) JOIN `block_target` ON ((bt_id=bl_target)) JOIN `comment` `comment_bl_reason` ON ((comment_bl_reason.comment_id = bl_reason_id)) WHERE (bt_user IS NOT NULL OR bt_range_start IS NOT NULL) AND bt_range_start IS NULL AND (bl_expiry > '20240325020054') AND bl_deleted = 0 ORDER BY bl_timestamp DESC,bl_id DESC LIMIT 101
Explain:
+------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+ | 1 | PRIMARY | block_target | ref | PRIMARY,bt_range,bt_user | bt_range | 38 | const | 809912 | Using where; Using temporary; Using filesort | | 1 | PRIMARY | block | ref | bl_target,bl_expiry | bl_target | 4 | enwiki.block_target.bt_id | 1 | Using where | | 1 | PRIMARY | block_by_actor | eq_ref | PRIMARY | PRIMARY | 8 | enwiki.block.bl_by_actor | 1 | | | 1 | PRIMARY | comment_bl_reason | eq_ref | PRIMARY | PRIMARY | 8 | enwiki.block.bl_reason_id | 1 | | | 2 | DEPENDENT SUBQUERY | hu_block_target | ref | PRIMARY,bt_user | bt_user | 5 | enwiki.block_target.bt_user | 1 | Using index | | 2 | DEPENDENT SUBQUERY | hu_block | ref | bl_target | bl_target | 4 | enwiki.hu_block_target.bt_id | 1 | Using where | +------+--------------------+-------------------+--------+--------------------------+-----------+---------+------------------------------+--------+----------------------------------------------+
Wrong table order, it should sort on bl_timestamp. Partially conflicting range conditions seem to confuse the planner.
Error
- mwversion: 1.42.0-wmf.23
- reqId: 7d8e733b-5117-4206-99ea-f411287e35f2
- Find reqId in Logstash
Expectation (readQueryTime <= 5) by MediaWiki\Actions\ActionEntryPoint::execute not met (actual: {actualSeconds}) in trx #{trxId}: {query}
from /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/TransactionProfiler.php(525) #0 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/TransactionProfiler.php(334): Wikimedia\Rdbms\TransactionProfiler->reportExpectationViolated(string, Wikimedia\Rdbms\GeneralizedSql, double, string, string) #1 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/TransactionManager.php(615): Wikimedia\Rdbms\TransactionProfiler->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, double, boolean, integer, string, string) #2 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(828): Wikimedia\Rdbms\TransactionManager->recordQueryCompletion(Wikimedia\Rdbms\GeneralizedSql, double, boolean, integer, string) #3 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(716): Wikimedia\Rdbms\Database->attemptQuery(Wikimedia\Rdbms\Query, string, boolean) #4 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(643): Wikimedia\Rdbms\Database->executeQuery(Wikimedia\Rdbms\Query, string, integer) #5 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/Database.php(1350): Wikimedia\Rdbms\Database->query(Wikimedia\Rdbms\Query, string) #6 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/DBConnRef.php(119): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array) #7 /srv/mediawiki/php-1.42.0-wmf.23/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\Rdbms\DBConnRef->__call(string, array) #8 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(467): Wikimedia\Rdbms\DBConnRef->select(array, array, array, string, array, array) #9 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(289): MediaWiki\Pager\IndexPager->reallyDoQuery(string, integer, boolean) #10 /srv/mediawiki/php-1.42.0-wmf.23/includes/pager/IndexPager.php(739): MediaWiki\Pager\IndexPager->doQuery() #11 /srv/mediawiki/php-1.42.0-wmf.23/includes/specials/SpecialBlockList.php(320): MediaWiki\Pager\IndexPager->getNumRows() #12 /srv/mediawiki/php-1.42.0-wmf.23/includes/specials/SpecialBlockList.php(176): MediaWiki\Specials\SpecialBlockList->showList(MediaWiki\Pager\BlockListPager) #13 /srv/mediawiki/php-1.42.0-wmf.23/includes/specialpage/SpecialPage.php(720): MediaWiki\Specials\SpecialBlockList->execute(string) #14 /srv/mediawiki/php-1.42.0-wmf.23/includes/specialpage/SpecialPageFactory.php(1651): MediaWiki\SpecialPage\SpecialPage->run(NULL) #15 /srv/mediawiki/php-1.42.0-wmf.23/includes/actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext) #16 /srv/mediawiki/php-1.42.0-wmf.23/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest() #17 /srv/mediawiki/php-1.42.0-wmf.23/includes/MediaWikiEntryPoint.php(199): MediaWiki\Actions\ActionEntryPoint->execute() #18 /srv/mediawiki/php-1.42.0-wmf.23/index.php(58): MediaWiki\MediaWikiEntryPoint->run() #19 /srv/mediawiki/w/index.php(3): require(string) #20 {main}