During the process of reviewing our server defaults for MySQL 5.7, we thought that it might be better to change the default transaction isolation level from REPEATABLE-READ
to READ-COMMITTED
(the default for PostgreSQL, Oracle, and SQL Server). After some benchmarking, however, it seems that we should stick with REPEATABLE-READ as the default for now.
It’s very easy to modify the default isolation level, however, and it can even be done at the SESSION
level. For the most optimal performance you can change the transaction isolation level dynamically in your SESSION according the situation:
- For short running queries and transactions, use the default level of
REPEATABLE-READ
. - For long running queries and transactions, use the level of
READ-COMMITTED
.
You can find the full details of our recent benchmarking efforts on this topic here: http://dimitrik.free.fr/blog/archives/2015/02/mysql-performance-impact-of-innodb-transaction-isolation-modes-in-mysql-57.html
As always, THANK YOU for using MySQL!