パフォーマンスを向上させるために H2 データベースを使用しているため、実行時に MySQL から H2 データベースにデータをロードすることにしました。
シナリオは、book、author、book_author として 3 つのテーブルを作成したことです。book_author は多対多のテーブルです。
テーブル book、author および book_author には、それぞれ 1000、50000、および 50000 のレコードがあります。
選択クエリ
select book.name
from book, author , book_author
where book.id = book_author.book_id
and book_author.author_id = author.id
and author.name = 'Charles Dickens'
実行には 7 分かかります。
spring-jdbc を使用して H2 メモリ データベースを作成しました。
EmbeddedDatabase database_01 = new EmbeddedDatabaseBuilder().
setType(EmbeddedDatabaseType.H2).
addScript("initial_script.sql").
setName("database_01").build();
JdbcTemplate jdbcTemplate_01 = new JdbcTemplate(database_01);
なぜこの時間がかかるのか、それを最適化する方法を誰かが提案できますか?