High-Performance Java Persistence Newsletter, Issue 48

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?

Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.

So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!


Welcome to a new issue of the High-Performance Java Persistence Newsletter in which we share articles, videos, workshops, and StackOverflow answers that are very relevant to any developer who interacts with a database system using Java.


The pick of this edition is this article that explains why an SQL Server query executed by an application can have a different response time than if it were run on the SQL Server Management Studio.

Another great read is this article about the performance difference between composite indexes and merged indexes when using MySQL and PostgreSQL.

A few months ago, I wrote this article, which explains why UUID version 4 is not suitable for Primary Key values that are indexed using B+Tree and why a compact time-sorted identifier may provide better performance.

You can now use the Hypersistence Utils library to generate the TSID values automatically for your JPA and Hibernate entities. Check out this article for more details.

A very useful resource is this tutorials page, which provides several articles about distributed systems.

Speaking of distributed systems, I also wrote several articles about YugabyteDB, which is a very compelling distributed SQL database:


I uploaded the second video of the Shopizer performance tuning series:

This video is part of a series of videos about optimizing Java applications using the amazing Hypersistence Optimizer.

Best Tweets

Here are the best tweets I posted since the last newsletter:

Project Releases

The 3.2 version of the amazing Hypersistence Utils OSS project has been released and provides you with a TSID generator that can automatically allocate time-sorted identifiers for your JPA and Hibernate entities.

Hibernate ORM released two versions for the 6.1 and 5.6 branches that provide several bug fixes:

The 15.2 version of PostgreSQL has been released. This version provides a lot of fixes that were identified in the previous versions, so if you’re using 15.1 or 15.0, you may want to consider upgrading to 15.2.

The 12.2 version of the Microsoft JDBC Driver was released, providing support for Java 19. For instance, there’s an optimization that replaces synchronized blocks with reentrant locks, therefore improving the application performance on Loom.

The Spring Data JPA 3.0.2 has been released, providing several bug fixes.

Get in touch with my latest articles!

StackOverflow Answers

The following StackOverflow answers have been trending since the last newsletter episode:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.