mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 09:14:17 +01:00
01c82173dd
The original code was there to favor index search over table scan. This is not needed anymore as the cost calculations for table scans and index lookups are now more exact.
56 lines
3.7 KiB
Text
56 lines
3.7 KiB
Text
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
|
|
set @innodb_stats_persistent_save= @@innodb_stats_persistent;
|
|
set @innodb_stats_persistent_sample_pages_save=
|
|
@@innodb_stats_persistent_sample_pages;
|
|
set global innodb_stats_persistent= 1;
|
|
set global innodb_stats_persistent_sample_pages=100;
|
|
set optimizer_use_condition_selectivity=1;
|
|
analyze SELECT sysapproval_approver0.`sys_id`
|
|
FROM ((sysapproval_approver sysapproval_approver0
|
|
INNER JOIN task task1
|
|
ON sysapproval_approver0.`sysapproval` = task1.`sys_id`
|
|
AND (( task1.`sys_domain_path` = '/'
|
|
OR task1.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR task1.`sys_domain_path` LIKE '!!!/!!!/%' )))
|
|
INNER JOIN task task2
|
|
ON task1.`parent` = task2.`sys_id`
|
|
AND (( task2.`sys_domain_path` = '/'
|
|
OR task2.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR task2.`sys_domain_path` LIKE '!!!/!!!/%' )))
|
|
WHERE task2.`sys_id` LIKE '8e7792a7dbfffb00fff8a345ca961934%'
|
|
AND ( sysapproval_approver0.`sys_domain_path` = '/'
|
|
OR sysapproval_approver0.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR sysapproval_approver0.`sys_domain_path` LIKE '!!!/!!!/%' )
|
|
ORDER BY sysapproval_approver0.`order`
|
|
LIMIT 0, 50 ;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE task2 range PRIMARY,sys_class_name_2,sys_domain_path PRIMARY 96 NULL 1 0.00 100.00 100.00 Using where; Using temporary; Using filesort
|
|
1 SIMPLE task1 ref PRIMARY,task_parent,sys_class_name_2,sys_domain_path task_parent 99 test.task2.sys_id 2 NULL 100.00 NULL Using index condition; Using where
|
|
1 SIMPLE sysapproval_approver0 ref sysapproval_approver_ref5,sys_domain_path,sysapproval_approver_CHG1975376 sysapproval_approver_ref5 99 test.task1.sys_id 3 NULL 100.00 NULL Using index condition; Using where
|
|
set optimizer_use_condition_selectivity=4;
|
|
analyze SELECT sysapproval_approver0.`sys_id`
|
|
FROM ((sysapproval_approver sysapproval_approver0
|
|
INNER JOIN task task1
|
|
ON sysapproval_approver0.`sysapproval` = task1.`sys_id`
|
|
AND (( task1.`sys_domain_path` = '/'
|
|
OR task1.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR task1.`sys_domain_path` LIKE '!!!/!!!/%' )))
|
|
INNER JOIN task task2
|
|
ON task1.`parent` = task2.`sys_id`
|
|
AND (( task2.`sys_domain_path` = '/'
|
|
OR task2.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR task2.`sys_domain_path` LIKE '!!!/!!!/%' )))
|
|
WHERE task2.`sys_id` LIKE '8e7792a7dbfffb00fff8a345ca961934%'
|
|
AND ( sysapproval_approver0.`sys_domain_path` = '/'
|
|
OR sysapproval_approver0.`sys_domain_path` LIKE '!!!/!!#/!!$/%'
|
|
OR sysapproval_approver0.`sys_domain_path` LIKE '!!!/!!!/%' )
|
|
ORDER BY sysapproval_approver0.`order`
|
|
LIMIT 0, 50 ;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE task2 range PRIMARY,sys_class_name_2,sys_domain_path PRIMARY 96 NULL 1 0.00 100.00 100.00 Using where; Using temporary; Using filesort
|
|
1 SIMPLE task1 ref PRIMARY,task_parent,sys_class_name_2,sys_domain_path task_parent 99 test.task2.sys_id 2 NULL 100.00 NULL Using index condition; Using where
|
|
1 SIMPLE sysapproval_approver0 ref sysapproval_approver_ref5,sys_domain_path,sysapproval_approver_CHG1975376 sysapproval_approver_ref5 99 test.task1.sys_id 3 NULL 100.00 NULL Using index condition; Using where
|
|
drop table sysapproval_approver,task;
|
|
set global innodb_stats_persistent= @innodb_stats_persistent_save;
|
|
set global innodb_stats_persistent_sample_pages=
|
|
@innodb_stats_persistent_sample_pages_save;
|