In the context of CI would like to massively parallelise the running of tests. The code under testing require a database to be present, so MySQL is used (as the application goes with that right now).
If using one (big) database server and splitting the test cases into e.g. 50 bins, with each bin going to a different runner, each of those runners will first run migrations that set-up a dedicated schema for that runner. One thing to note is that the tables are not expected to have a lot of data in their short lifespan.
The aim is to optimise the test run times to be as fast as possible, but currently, for various reasons (some unclear, but related to the DB/querying), the timings are not very deterministic.
Therefore my questions are:
- how can the DB configuration be optimised for such a massively-parallel schema creation scenario? e.g. can schemas, tables, indexes, etc. be created with a small "size", something that might mean faster execution time on all those create/alter queries?
- can the queries be optimised somehow? and/or rather, can some parameter-setting queries be run at the very beginning, from the client (with admin access), to tweak it the right way?
- any other strategy one can think of? even a different DB flavour that might be better for this is a good suggestion, at least for the purpose of the discussion - but strategy here can relate to anything else, not just DB software or engine