Java Spring с базой данных H2, медленный весенний старт

Запуск Spring загрузки становится очень медленным, когда база данных H2 становится 50 МБ и более, есть ли способ ускорить процесс запуска?

  • 2018-06-28 17: 55: 15.515 ИНФОРМАЦИЯ 23632 --- [restartedMain] io.onetouch.SpringBootStarter: запуск SpringBootStarter на...
  • 2018-06-28 17: 55: 15.516 ИНФОРМАЦИЯ 23632 --- [restartedMain] io.onetouch.SpringBootStarter: не задан активный профиль ...
  • 2018-06-28 17: 55: 15.582 INFO 23632 --- [restartedMain] ationConfigEmbeddedWebApplicationContext: обновление org.springframework.boot.context ...
  • 2018-06-28 17: 55: 19,403 INFO 23632 --- [restartedMain] f.a.AutowiredAnnotationBeanPostProcessor: обнаружена аннотация JSR-330 'javax.inject.Inject', которая поддерживается для автоматического подключения
  • 2018-06-28 17: 59: 58.589 INFO 23632 --- [restartedMain] trationDelegate $ BeanPostProcessorChecker: Bean 'connectionFactory' типа [io.onetouch.persistance.ConnectionFactory] не подходит для ...

Как у вас подключение к базе данных H2?

Dherik 28.06.2018 17:18

datasource.url = jdbc: h2: $ {datasource.folder} / test_db; DB_CLOSE_ON_EXIT = FALSE; ‌ DB_CLOSE_DELAY = -1; AU‌ TO_SERVER = TRUE datasource.username = ***** datasource.password = **** ** datasource.driverClassName = org.h2.Driver hibernate.dialect = org.hibernate.dialect.H2Dialect

Jenya Shvartsman 28.06.2018 17:31

Вы воссоздаете базу данных при каждом запуске? Эта база данных используется для интеграционного тестирования?

Dherik 28.06.2018 17:38

не воссоздавать, только обновлять

Jenya Shvartsman 28.06.2018 17:44
2
4
509
1

Ответы 1

По моему опыту, H2 отлично подходит для небольших встроенных баз данных. Однако в какой-то момент (300 МБ в моем случае) он стал все медленнее, и я был вынужден заменить его на не встроенный - PostgreSQL - который решил все эти проблемы. Это решение было доступно мне, поскольку встроенная база данных не была для меня сложной задачей.

При этом база данных размером 50 МБ - это не так уж и много. Раньше это было так, но современные машины должны достаточно хорошо поддерживать этот размер. Может быть, сама машина маленькая, а может быть, она перегружена процессором или памятью?

Другие вопросы по теме