Skip to content

Commit 4bad3f1

Browse files
MDEV-39405: store the necessary plugin-engines optimizer costs
store the necessary plugin-engines optimizer costs that are used by the query into the context, so that the replay server uses the same while computing query cost
1 parent 17dece4 commit 4bad3f1

3 files changed

Lines changed: 185 additions & 80 deletions

File tree

mysql-test/main/costs.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
--source include/have_sequence.inc
99
--source include/have_innodb.inc
1010
--source include/innodb_stable_estimates.inc
11+
--disable_replay testfile Uses Last_query_cost for most queries
1112

1213
create table t1 (a int primary key, b int, c int, d int, e int, key ba (b,a), key bda (b,d,a), key cba (c,b,a), key cb (c,b), key d (d)) engine=aria;
1314
insert into t1 select seq,seq,seq,seq,seq from seq_1_to_10;

mysql-test/main/opt_context_replay_basic.result

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,43 @@ select @set_stmts;
2020
@set_stmts
2121
SET NAMES utf8mb4;
2222

23-
SET join_buffer_size=262144;
23+
SET GLOBAL MyISAM.OPTIMIZER_DISK_READ_COST=10.24;
24+
SET GLOBAL MyISAM.OPTIMIZER_INDEX_BLOCK_COPY_COST=0.0356;
25+
SET GLOBAL MyISAM.OPTIMIZER_KEY_COMPARE_COST=0.011361;
26+
SET GLOBAL MyISAM.OPTIMIZER_KEY_COPY_COST=0.015685;
27+
SET GLOBAL MyISAM.OPTIMIZER_KEY_LOOKUP_COST=0.550142;
28+
SET GLOBAL MyISAM.OPTIMIZER_KEY_NEXT_FIND_COST=0.090585;
29+
SET GLOBAL MyISAM.OPTIMIZER_DISK_READ_RATIO=0.02;
30+
SET GLOBAL MyISAM.OPTIMIZER_ROW_COPY_COST=0.060866;
31+
SET GLOBAL MyISAM.OPTIMIZER_ROW_LOOKUP_COST=1.014818;
32+
SET GLOBAL MyISAM.OPTIMIZER_ROW_NEXT_FIND_COST=0.063539;
33+
SET GLOBAL MyISAM.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
34+
SET GLOBAL MyISAM.OPTIMIZER_ROWID_COPY_COST=0.002653;
35+
SET GLOBAL heap.OPTIMIZER_DISK_READ_COST=0;
36+
SET GLOBAL heap.OPTIMIZER_INDEX_BLOCK_COPY_COST=0;
37+
SET GLOBAL heap.OPTIMIZER_KEY_COMPARE_COST=0.011361;
38+
SET GLOBAL heap.OPTIMIZER_KEY_COPY_COST=0;
39+
SET GLOBAL heap.OPTIMIZER_KEY_LOOKUP_COST=0;
40+
SET GLOBAL heap.OPTIMIZER_KEY_NEXT_FIND_COST=0;
41+
SET GLOBAL heap.OPTIMIZER_DISK_READ_RATIO=0;
42+
SET GLOBAL heap.OPTIMIZER_ROW_COPY_COST=0.002334;
43+
SET GLOBAL heap.OPTIMIZER_ROW_LOOKUP_COST=0;
44+
SET GLOBAL heap.OPTIMIZER_ROW_NEXT_FIND_COST=0.0080166;
45+
SET GLOBAL heap.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
46+
SET GLOBAL heap.OPTIMIZER_ROWID_COPY_COST=0.002653;
47+
SET GLOBAL temp_table.OPTIMIZER_DISK_READ_COST=10.24;
48+
SET GLOBAL temp_table.OPTIMIZER_INDEX_BLOCK_COPY_COST=0.0356;
49+
SET GLOBAL temp_table.OPTIMIZER_KEY_COMPARE_COST=0.011361;
50+
SET GLOBAL temp_table.OPTIMIZER_KEY_COPY_COST=0.015685;
51+
SET GLOBAL temp_table.OPTIMIZER_KEY_LOOKUP_COST=0.435777;
52+
SET GLOBAL temp_table.OPTIMIZER_KEY_NEXT_FIND_COST=0.082347;
53+
SET GLOBAL temp_table.OPTIMIZER_DISK_READ_RATIO=0.02;
54+
SET GLOBAL temp_table.OPTIMIZER_ROW_COPY_COST=0.060866;
55+
SET GLOBAL temp_table.OPTIMIZER_ROW_LOOKUP_COST=0.130839;
56+
SET GLOBAL temp_table.OPTIMIZER_ROW_NEXT_FIND_COST=0.045916;
57+
SET GLOBAL temp_table.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
58+
SET GLOBAL temp_table.OPTIMIZER_ROWID_COPY_COST=0.002653;
59+
SET join_buffer_size=262144;
2460

2561
SET join_cache_level=2;
2662

@@ -87,6 +123,42 @@ dumpfile "dump1.sql" from information_schema.optimizer_context;
87123
ERROR HY000: The MariaDB server is running with the --secure-file-priv option so it cannot execute this statement
88124
drop table t1;
89125
SET NAMES utf8mb4;
126+
SET GLOBAL MyISAM.OPTIMIZER_DISK_READ_COST=10.24;
127+
SET GLOBAL MyISAM.OPTIMIZER_INDEX_BLOCK_COPY_COST=0.0356;
128+
SET GLOBAL MyISAM.OPTIMIZER_KEY_COMPARE_COST=0.011361;
129+
SET GLOBAL MyISAM.OPTIMIZER_KEY_COPY_COST=0.015685;
130+
SET GLOBAL MyISAM.OPTIMIZER_KEY_LOOKUP_COST=0.550142;
131+
SET GLOBAL MyISAM.OPTIMIZER_KEY_NEXT_FIND_COST=0.090585;
132+
SET GLOBAL MyISAM.OPTIMIZER_DISK_READ_RATIO=0.02;
133+
SET GLOBAL MyISAM.OPTIMIZER_ROW_COPY_COST=0.060866;
134+
SET GLOBAL MyISAM.OPTIMIZER_ROW_LOOKUP_COST=1.014818;
135+
SET GLOBAL MyISAM.OPTIMIZER_ROW_NEXT_FIND_COST=0.063539;
136+
SET GLOBAL MyISAM.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
137+
SET GLOBAL MyISAM.OPTIMIZER_ROWID_COPY_COST=0.002653;
138+
SET GLOBAL heap.OPTIMIZER_DISK_READ_COST=0;
139+
SET GLOBAL heap.OPTIMIZER_INDEX_BLOCK_COPY_COST=0;
140+
SET GLOBAL heap.OPTIMIZER_KEY_COMPARE_COST=0.011361;
141+
SET GLOBAL heap.OPTIMIZER_KEY_COPY_COST=0;
142+
SET GLOBAL heap.OPTIMIZER_KEY_LOOKUP_COST=0;
143+
SET GLOBAL heap.OPTIMIZER_KEY_NEXT_FIND_COST=0;
144+
SET GLOBAL heap.OPTIMIZER_DISK_READ_RATIO=0;
145+
SET GLOBAL heap.OPTIMIZER_ROW_COPY_COST=0.002334;
146+
SET GLOBAL heap.OPTIMIZER_ROW_LOOKUP_COST=0;
147+
SET GLOBAL heap.OPTIMIZER_ROW_NEXT_FIND_COST=0.0080166;
148+
SET GLOBAL heap.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
149+
SET GLOBAL heap.OPTIMIZER_ROWID_COPY_COST=0.002653;
150+
SET GLOBAL temp_table.OPTIMIZER_DISK_READ_COST=10.24;
151+
SET GLOBAL temp_table.OPTIMIZER_INDEX_BLOCK_COPY_COST=0.0356;
152+
SET GLOBAL temp_table.OPTIMIZER_KEY_COMPARE_COST=0.011361;
153+
SET GLOBAL temp_table.OPTIMIZER_KEY_COPY_COST=0.015685;
154+
SET GLOBAL temp_table.OPTIMIZER_KEY_LOOKUP_COST=0.435777;
155+
SET GLOBAL temp_table.OPTIMIZER_KEY_NEXT_FIND_COST=0.082347;
156+
SET GLOBAL temp_table.OPTIMIZER_DISK_READ_RATIO=0.02;
157+
SET GLOBAL temp_table.OPTIMIZER_ROW_COPY_COST=0.060866;
158+
SET GLOBAL temp_table.OPTIMIZER_ROW_LOOKUP_COST=0.130839;
159+
SET GLOBAL temp_table.OPTIMIZER_ROW_NEXT_FIND_COST=0.045916;
160+
SET GLOBAL temp_table.OPTIMIZER_ROWID_COMPARE_COST=0.002653;
161+
SET GLOBAL temp_table.OPTIMIZER_ROWID_COPY_COST=0.002653;
90162
SET join_buffer_size=262144;
91163
SET join_cache_level=2;
92164
SET optimizer_adjust_secondary_key_costs=0;

0 commit comments

Comments
 (0)