Type:
New Feature
Priority:
Major
Resolution:
Duplicate
Stumbled on this in MDEV-22377 .
Single-table UPDATE/DELETEs do not support Materialization (I mean non-semi-join one, for the issue with semi-joins, see MDEV-7487 ).
The reason is in JOIN::choose_subquery_plan():
#0 JOIN::choose_subquery_plan (this=0x7ffc40017368, join_tables=3) at /home/psergey/dev-git/10.4-rel/sql/opt_subselect.cc:6467
#1 0x0000555555db8ad8 in make_join_statistics (join=0x7ffc40017368, tables_list=..., keyuse_array=0x7ffc40017658) at /home/psergey/dev-git/10.4-rel/sql/sql\_select.cc:5590
#2 0x0000555555dac671 in JOIN::optimize_inner (this=0x7ffc40017368) at /home/psergey/dev-git/10.4-rel/sql/sql_select.cc:2254
#3 0x0000555555da9fb6 in JOIN::optimize (this=0x7ffc40017368) at /home/psergey/dev-git/10.4-rel/sql/sql\_select.cc:1601
#4 0x0000555555d301ab in st_select_lex::optimize_unflattened_subqueries (this=0x7ffc40005470, const_only=false) at /home/psergey/dev-git/10.4-rel/sql/sql_lex.cc:4188
#5 0x0000555555e701d2 in mysql_update (thd=0x7ffc40000d50, table_list=0x7ffc40012450, fields=..., values=..., conds=0x7ffc40016e80, order_num=0, order=0x0, limit=18446744073709551615, ignore=false, found_return=0x7fffdcbb0e70, updated_return=0x7fffdcbb0f30) at /home/psergey/dev-git/10.4-rel/sql/sql_update.cc:516
{
/*
TODO: outer_join can be NULL for DELETE statements.
How to compute its cost?
*/
outer_lookup_keys= 1;
}
Here, we don't know how many times the subquery will be evaluated (if we assume it's evaluated once, Materialization doesn't make sense).
Can we figure out how many rows single-table UPDATE/DELETE is going to examine?
Not yet: mysql_update() calls optimize_unflattened_subqueries:
if (select_lex->optimize_unflattened_subqueries( false ))
DBUG_RETURN(TRUE);
before it does partition pruning or range analysis.
{"report":{"fcp":838.3999996185303,"ttfb":178.5999994277954,"pageVisibility":"visible","entityId":86270,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"7620cc8e-0359-4156-a6e5-b75e3af57057","navigationType":0,"readyForUser":914.3999996185303,"redirectCount":0,"resourceLoadedEnd":1036.5999994277954,"resourceLoadedStart":186.89999961853027,"resourceTiming":[{"duration":227.9000005722046,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":186.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":186.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":414.80000019073486,"responseStart":0,"secureConnectionStart":0},{"duration":227.80000019073486,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":187.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":187.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":415,"responseStart":0,"secureConnectionStart":0},{"duration":236.4000005722046,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":187.39999961853027,"connectEnd":187.39999961853027,"connectStart":187.39999961853027,"domainLookupEnd":187.39999961853027,"domainLookupStart":187.39999961853027,"fetchStart":187.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":187.39999961853027,"responseEnd":423.80000019073486,"responseStart":423.80000019073486,"secureConnectionStart":187.39999961853027},{"duration":262,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":188,"connectEnd":188,"connectStart":188,"domainLookupEnd":188,"domainLookupStart":188,"fetchStart":188,"redirectEnd":0,"redirectStart":0,"requestStart":188,"responseEnd":450,"responseStart":450,"secureConnectionStart":188},{"duration":266.1000003814697,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":188.0999994277954,"connectEnd":188.0999994277954,"connectStart":188.0999994277954,"domainLookupEnd":188.0999994277954,"domainLookupStart":188.0999994277954,"fetchStart":188.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":188.0999994277954,"responseEnd":454.19999980926514,"responseStart":454.19999980926514,"secureConnectionStart":188.0999994277954},{"duration":266.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":188.19999980926514,"connectEnd":188.19999980926514,"connectStart":188.19999980926514,"domainLookupEnd":188.19999980926514,"domainLookupStart":188.19999980926514,"fetchStart":188.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":188.19999980926514,"responseEnd":454.69999980926514,"responseStart":454.5999994277954,"secureConnectionStart":188.19999980926514},{"duration":266.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":188.5,"connectEnd":188.5,"connectStart":188.5,"domainLookupEnd":188.5,"domainLookupStart":188.5,"fetchStart":188.5,"redirectEnd":0,"redirectStart":0,"requestStart":188.5,"responseEnd":455,"responseStart":455,"secureConnectionStart":188.5},{"duration":267.80000019073486,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":188.5999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":188.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":456.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":266.69999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":188.80000019073486,"connectEnd":188.80000019073486,"connectStart":188.80000019073486,"domainLookupEnd":188.80000019073486,"domainLookupStart":188.80000019073486,"fetchStart":188.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":188.80000019073486,"responseEnd":455.5,"responseStart":455.5,"secureConnectionStart":188.80000019073486},{"duration":267.6000003814697,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":188.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":188.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":456.5,"responseStart":0,"secureConnectionStart":0},{"duration":266.9000005722046,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":189.0999994277954,"connectEnd":189.0999994277954,"connectStart":189.0999994277954,"domainLookupEnd":189.0999994277954,"domainLookupStart":189.0999994277954,"fetchStart":189.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":189.0999994277954,"responseEnd":456,"responseStart":456,"secureConnectionStart":189.0999994277954},{"duration":423.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":191.5999994277954,"connectEnd":191.5999994277954,"connectStart":191.5999994277954,"domainLookupEnd":191.5999994277954,"domainLookupStart":191.5999994277954,"fetchStart":191.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":191.5999994277954,"responseEnd":615.0999994277954,"responseStart":615.0999994277954,"secureConnectionStart":191.5999994277954},{"duration":840.6999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":195.89999961853027,"connectEnd":195.89999961853027,"connectStart":195.89999961853027,"domainLookupEnd":195.89999961853027,"domainLookupStart":195.89999961853027,"fetchStart":195.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":195.89999961853027,"responseEnd":1036.5999994277954,"responseStart":1036.5,"secureConnectionStart":195.89999961853027},{"duration":393.8999996185303,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":641.6999998092651,"connectEnd":641.6999998092651,"connectStart":641.6999998092651,"domainLookupEnd":641.6999998092651,"domainLookupStart":641.6999998092651,"fetchStart":641.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":641.6999998092651,"responseEnd":1035.5999994277954,"responseStart":1035.5999994277954,"secureConnectionStart":641.6999998092651}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":10,"responseStart":179,"responseEnd":196,"domLoading":182,"domInteractive":1059,"domContentLoadedEventStart":1059,"domContentLoadedEventEnd":1098,"domComplete":2057,"loadEventStart":2057,"loadEventEnd":2059,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1042.8999996185303},{"name":"bigPipe.sidebar-id.end","time":1043.8000001907349},{"name":"bigPipe.activity-panel-pipe-id.start","time":1044},{"name":"bigPipe.activity-panel-pipe-id.end","time":1046.3999996185303},{"name":"activityTabFullyLoaded","time":1104.0999994277954}],"measures":[],"correlationId":"45f732c5241aaa","effectiveType":"4g","downlink":9.1,"rtt":0,"serverDuration":103,"dbReadsTimeInMs":13,"dbConnsTimeInMs":24,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}