database performance: Java Linux Databases: Multi-Threaded Delete
Up to 100 threads
With no pause in the threads and up to 100 threads,
two groups emerge: DB2, MySQL and Postgres perform well whereas Informix, SQL Anywhere and Firebird do not:
For those databases still running the test (Informix timed out),
introducing just a 1 millisecond pause in each thread allows for a much higher throughput:
MySQL scaled very well with an almost constant throughput up to 100 threads.
All databases started from exactly the same point which was surprising.
Postgres and Firebird performed quite well and showed a stairway effect
(as well as Sybase Anywhere to some extent) which would seem to be linked to the Java/OS thread scheduling.
More threads
With many more threads (and a 5 millisecond pause in each thread), there is only one clear winner:
MySQL scales very well up to thousands of threads. Postgresql also performs quite well.
DB2 performed very well up to 600 hundreds threads when the test was stopped.
Firebird did not perform as well as Postgresql, but it did manage to provide reasonable performance throughout (the test timed out after 1300 threads).
SQL Anywhere was the slowest (not counting Informix).