2

我正在使用 H2 数据库来提高性能,因此我决定在运行时将数据从 MySQL 加载到 H2 数据库。

场景是我创建了三个表,分别是 book、author、book_author。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 回答