mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	 01c82173dd
			
		
	
	
	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;
 |