2

パフォーマンスを向上させるために 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);

なぜこの時間がかかるのか、それを最適化する方法を誰かが提案できますか?

4

1 に答える 1

5

適切なインデックスを作成しましたか? index と H2 での使用方法に関するドキュメントも参照してください。

于 2012-10-31T17:36:16.217 に答える