Cloning the schema from a template cut the per-test store cost on
Postgres from about 0.9s to 0.3s but barely moved MySQL, which stayed at
1.5s to 1.9s per store. The time is the DDL itself: with the server
defaults each CREATE TABLE fsyncs the redo log, the binary log and the
doublewrite buffer, and the suite issues about 40 of them per test.
Start mysqld in the test container without the binary log, without the
doublewrite buffer and without a redo fsync per commit. The image is the
official MySQL entrypoint, so the flags are passed as the container
command. Tables stay in per-table files: with innodb_file_per_table off
the packages that create hundreds of databases per run got slower, not
faster, because dropped databases leave the shared system tablespace to
grow and fragment.
Measured on healthy runners, management/server on MySQL went from
10m16s to 6m36s and the store package from 4m20s to 2m41s, with
per-test store setup down from about 1.6s to about 0.5s.