@@ -383,6 +383,17 @@ INSERT INTO t1(id, dept, age, name) VALUES
383
383
(3996, 'cs4', 20, 'rs2'), (4003, 'cs5', 10, 'rs3'), (4004, 'cs6', 20, 'rs3'),
384
384
(4011, 'cs7', 10, 'rs4'), (4012, 'cs8', 20, 'rs4'), (4019, 'cs9', 10, 'rs5'),
385
385
(4020, 'cs10', 20, 'rs5'),(4027, 'cs11', 10, 'rs6'),(4028, 'cs12', 20, 'rs6');
386
+ set
387
+ @tmp_uss=@@use_stat_tables,
388
+ @tmp_occ=@@optimizer_use_condition_selectivity;
389
+ set
390
+ use_stat_tables='preferably',
391
+ optimizer_use_condition_selectivity=4;
392
+ analyze table t1 persistent for all;
393
+ Table Op Msg_type Msg_text
394
+ test.t1 analyze status Engine-independent statistics collected
395
+ test.t1 analyze status OK
396
+ flush tables;
386
397
EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
387
398
id select_type table type possible_keys key key_len ref rows Extra
388
399
1 SIMPLE t1 ref name name 22 const 2 Using where; Using index
@@ -398,6 +409,9 @@ id select_type table type possible_keys key key_len ref rows Extra
398
409
SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
399
410
name dept
400
411
DROP TABLE t1;
412
+ set
413
+ use_stat_tables=@tmp_uss,
414
+ optimizer_use_condition_selectivity=@tmp_occ;
401
415
drop table if exists t1;
402
416
show variables like 'innodb_rollback_on_timeout';
403
417
Variable_name Value
@@ -3166,8 +3180,8 @@ SELECT COUNT(*) FROM
3166
3180
(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
3167
3181
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
3168
3182
id select_type table type possible_keys key key_len ref rows Extra
3169
- 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 1537
3170
- 2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL 1537 Using sort_union(idx,PRIMARY); Using where
3183
+ 1 PRIMARY <derived2> ALL NULL NULL NULL NULL #
3184
+ 2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL # Using sort_union(idx,PRIMARY); Using where
3171
3185
SELECT COUNT(*) FROM
3172
3186
(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
3173
3187
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
0 commit comments