Заполните h2 в памяти базы данных из базы данных db2 Spring Boot - PullRequest
1 голос
/ 06 апреля 2020

В настоящее время я создаю Spring Boot Service с базой данных h2 в памяти. Эта база данных действует как кэш для части данных в центральной базе данных db2 с другой схемой базы данных.

Теперь, когда запускается служба загрузки Spring, необходимо заполнить базу данных h2 самыми последними данными из центральной базы данных. база данных.

Как я могу сделать это наилучшим образом с точки зрения производительности? В настоящее время я ищу, чтобы создать другой источник данных в моем сервисе, чтобы сначала получить данные, а затем сохранить данные в h2.

Это не похоже на хорошее решение, и заполнение базы данных займет довольно много времени.

1 Ответ

3 голосов
/ 06 апреля 2020

Если вы хотите использовать H2 вместо базы данных DB2 ... и если вы не хотите пересоздавать базу данных каждый раз, когда запускаете приложение ...

..., подумайте используя файл H2 вместо памяти:

http://www.h2database.com/html/features.html

jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)

Вы можете «инициализировать» файл всякий раз, когда вы хочу (возможно, только один раз).

Производительность должна быть превосходной.


За ваше обновление:

Мне все еще нужно получить доступ к центральной базе данных, чтобы получить самые последние данные в кратчайшие сроки. Центральная база данных должна оставаться для других служб, также имеющих доступ к этому

"Самый быстрый" способ получить самые последние данные ... это запросить центральную базу данных напрямую. Период - нет ifs / ands / buts.

Но, если по какой-либо причине вы хотите "кэшировать" подмножество "недавних" данных ... тогда H2 - отличный выбор.

И если вы не хотите «перестраивать» каждый раз, когда запускаете базу данных H2, сохраните H2 в файл вместо того, чтобы делать это в памяти.

Разница в производительности между H2: mem и H2: файл небольшой по сравнению с затратами в сети на запрос центральной базы данных.

'Надеюсь, это поможет ...

...