У меня есть проект Java Spring, который много читает из базы данных. База данных, которую я имею в наличии, является общей базой данных postgresql на удаленной машине, и получать данные из нее довольно медленно, особенно когда я много работаю взад-вперед.
Когда я занимаюсь локальным тестированием и разработкой, я использую встроенную базу данных H2 в памяти. Вещи легко идут в 100 раз быстрее.
Это заставило меня задуматься. Есть ли способ использовать встроенную базу данных H2 в памяти, чтобы:
- Манипуляции с данными (INSERT, UPDATE, DELETE) ("в конце концов") реплицировались в базу данных PostgreSQL
- При запуске / перезапуске проекта Spring база данных H2 автоматически заполняется данными сервера PostgreSQL
Это позволило бы мне использовать быстрый H2, чтобы обеспечить бесперебойную работу пользователя, находясь нав то же время также хранение данных в долговременном хранилище данных. В некотором смысле, я бы использовал H2 как полностью кэшированную версию базы данных PostgreSQL.
Есть ли известный / стандартизированный способ решения этой проблемы? Google для H2 и PostgreSQL и репликация дают мне результаты при переходе от одного к другому, но я не нахожу особого в том, чтобы использовать один в качестве своего рода кеша для другого.