When using schema update/validate, Hibernate needs to access the current state of the schema on the database server.
In 4.3, Hibernate was executing "SHOW FULL TABLES and SHOW FULL COLUMNS with LIKE '%' " in order to discover the complete database tables columns. Starting in 5.0 however Hibernate is no longer using "%" but it is giving as parameter all individual columns from every table it discovered. The amount of queries to the database during startup increased from ~200 to ~2700. Due to the constant load to which the server is exposed from other applications, each query takes 100-150ms, thus increasing the startup time of our application from 10-20 seconds to 4-5 minutes.
The number of queries can be easily seen by enabling MySQL query log.
Ubuntu Server 14.04 LTS x64, Percona Server 5.6.
Correct. Schema update/validation phase of startup.
I can see how that would be problematic. However the flip side is that we had many problems trying to get the different handling for casing of the db-object names as returned from the database in terms of determining if the name is quoted or not and then being able to match those names up with those from the mappings.
But now that we have this working correctly it is a good time to go back and look at making it faster.
As extra notes, even in 4.3 schema update/validation accounts for the most of the startup time so any optimizations beyond 4.3 levels would be highly appreciated.
Reopening to add label.
Add 5.1.4 as fix version.