I made a PostgreSQL db in docker and made simple JMeter test plan to load data from db.
In JDBC Connection Configuration of JMeter I'm alternating the transaction isolation level from DEFAULT to TRANSACTION_READ_COMMITTED.
In Summary Report I consistently see throughput of 3.3k when on DEFAULT at end of 100k transactions in 4 threads and 1.8k throughput when on TRANSACTION_READ_COMMITTED.
Why could be that for TRANSACTION_READ_COMMITTED throughput is twice less?
https://www.postgresql.org/docs/current/transaction-iso.html:
In PostgreSQL, you can request any of the four standard transaction isolation levels. But internally, there are only three distinct isolation levels, which correspond to the levels Read Committed, Repeatable Read, and Serializable. When you select the level Read Uncommitted you really get Read Committed... Read Committed is the default isolation level in PostgreSQL.
TRANSACTION_READ_UNCOMMITTED in JMeter results in same magnitude of throughput as TRANSACTION_READ_COMMITTED, any other than DEFAULT results in significantly less throughput than DEFAULT.