Startup performance regression : schema update/validate

Description

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.

Environment

Ubuntu Server 14.04 LTS x64, Percona Server 5.6.

Status

Assignee

Andrea Boriero

Reporter

Sergiu Hlihor

Fix versions

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Affects versions

5.0.0.Final
5.2.1

Priority

Major