Details
-
Type:
Task
-
Status: In Progress
-
Priority:
Critical
-
Resolution: Unresolved
-
Fix Version/s: N/A
-
Component/s: None
-
Labels:
Description
We need a re-run of DBT-3 benchmark with the new features:
- Engine-independent statistics in MariaDB 10.0 (note: Timour will provide a 10.0-based tree with latest fixes to EITS and subquery optimizations)
- Innodb's persistent statistics in MySQL-5.6
The primary goal is to explore what query plans will be used with Engine-independent table statistics (further called EITS).
EITS are persistent, predictable (statistics calculation has no randomness elements), and precise. The statistics need to be collected manually, and there is an optimizer setting to get them to be used (see https://kb.askmonty.org/en/engine-independent-table-statistics/ for details).
MySQL-5.6 and their persistent statistics should be used as something to compare against. I suppose, increasing innodb_stats_persistent_sample_pages should reduce the number of chosen plans (to one plan even?) ?
The benchmark should be a DBT-3 run. It should be IO-bound.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
The benchmark should be run with the following tree:
lp:~maria-captains/maria/10.0-mdev83
This tree is based on MWL#253, which adds predicate selectivity estimates. The tree of
10.0-mdev83 implements static (done during optimization) pushdown of subquery predicates.
In order to test the new features, the following optimizer switches must be enabled:
set @@optimizer_use_condition_selectivity=3;
set @@optimizer_switch='expensive_pred_static_pushdown=on';
In addition, in order to get proper selectivity estimates that let the optimizer choose the right plan
for Q20, specifically Q20 should be run with the following indexes:
create index i_p_name on part(p_name);
create index i_n_name on nation(n_name);
Notice that these indexes do not affect execution performance, because they are not used
during execution. Once there are histograms that would allow proper selectivity estimates,
these indexes will not be needed. Make sure that these indexes exist only when Q20 is
being run.