سؤال

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.

هل كانت مفيدة؟

المحلول

Check out the given article that how Partitioning help to improve server performance

How To Decide if You Should Use Table Partitioning

and also almost same question answered by expert check it out

Stackoverflow question

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top