mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
full_join.test runs once for every point of three crossed axes, the optimizer switch axis in full_join.combinations, the storage engine axis in full_join_engine.combinations and the index axis in full_join_index.combinations, thirty runs in all. The result file in the tree is the run with the default engine, no added indexes and the switches at their defaults. Every other run's expected output is a diff against it, so a run whose output matches it has no file of its own, and a query added to the test shows up in all thirty runs. The index axis gives every column of every base table a non-unique index on itself. The work is decided by what the database holds at the point full_join_add_indexes.inc is sourced, so a section sources it after the tables it creates. A non-unique index is the only kind that can be added without knowing the data, since a primary key or a unique index would fail on the duplicates and the NULLs that many sections put in a join column on purpose. The switch axis holds the four switches at their defaults and each of them off in turn, which is what makes a wrong result attributable to one transformation.
18 lines
661 B
Plaintext
18 lines
661 B
Plaintext
# InnoDB keeps its index statistics in a table and recalculates them from a
|
|
# background thread once enough rows have changed. An EXPLAIN that runs
|
|
# while that recalculation is still pending reports a row estimate taken
|
|
# from whatever the table held at the time, so the same query gives a
|
|
# different estimate from one run to the next. Transient statistics are
|
|
# computed when the table is opened, from a sample large enough to cover
|
|
# every one of these small tables, which makes the estimates reproducible.
|
|
[innodb]
|
|
innodb
|
|
default-storage-engine=innodb
|
|
innodb-stats-persistent=0
|
|
|
|
[myisam]
|
|
default-storage-engine=myisam
|
|
|
|
[aria]
|
|
default-storage-engine=aria
|