I have implemented a benchmark which tests the permanence of reads and writes on 10 different tables.
I have 10 java threads , each performs queries on its table only:
Threads 1 performs operations on Table1, Threads 2 performs operations on Table2,
I have compered the performance of running those threads in parallel executing multiple reads on non partitioned Table[1-10], vs the performance of the same benchmark while partitioning each TableX to 9 equal partitions (each represents a week of measurements, total 9 weeks of data).
I have received interesting and non explainable results:
The performance of a single operation for a single thread is two times better for a non partitioned table, while the total time of all operations for all threads is 5 times faster for the partitioned tables.
I checked the logs, and noticed that partitioned tables enable more operations to be paralleled, and although a single operation is longer, multiple operations for different threads are paralleled , and therefore finish faster.
I don't understand why is this happen, since each thread execute operations only on its own table???
I am using only MyISAM engine for all my tables and partitions.