Я написал REST API для весенней загрузки, который подключается к устаревшей базе данных MySQL с огромным количеством таблиц - 10759. Когда я запускаю проект весенней загрузки, журнал останавливается на строке, которая указывает на инициализацию HSQLDialect. Восстановление журнала может занять несколько минут.
Обратите внимание на временные метки сообщений журнала, чтобы понять, что я имею в виду. Еще раз только журналы, которые указывают на проблему:
2020-04-21 19:10:26.489 INFO 10019 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2020-04-21 19:10:26.699 INFO 10019 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
2020-04-21 19:13:06.068 INFO 10019 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Устаревшая версия БД:
innodb_version: 5.6.14
protocol_version: 10
version: 5.6.14-1+debphp.org~precise+1
version_comment: (Ubuntu)
version_compile_machine: x86_64
version_compile_os: debian-linux-gnu
Версия Spring Framework
2.2.4
Я также пытался заставить Спящий режим для пользователя MySQL5Dialect
, добавив следующую строку в файл application.properties
проекта:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Но он продолжает переключаться на HSQLDialect.
Я подозреваю, что большое количество таблиц как-то связано с этой проблемой. У меня похожие проблемы, когда я пытаюсь подключиться к той же базе данных с помощью нескольких MySQL GUI инструментов, таких как PHPMyAdmin, DBeaver, MySQL Workbench. Некоторые инструменты не могут загрузить список таблиц. Другие загружают их, но через несколько минут.
Можете ли вы объяснить, почему инициализация HSQLDialect занимает так много времени и что я могу сделать, чтобы исправить эту проблему, пожалуйста?