我的查询在使用索引的hibernate中花费了太多时间

时间:2012-05-16 12:12:51

标签: java hibernate

我正在使用Hibernate,我有这个表:

表my_entity:

ID_ENTITY        int(10) unsigned PK
ID_ENTITY_TYPE   int(10) unsigned
NAME             varchar(256)
SYNONYM          varchar(32)
KEY `INDEX_synonym` (`SYNONYM`)

我在这张表中有180.000行。

当我执行查询时,需要几秒钟。

 query = session.createQuery("from Entity c Where synonym = :synonym");
 query.setParameter(":synonym", MYKEY);     
 lst = query.list();  

如何指示Hibernate使用索引?

1 个答案:

答案 0 :(得分:3)

除了生成SQL查询并执行它之外,Hibernate不会执行任何操作。打开登录名以查看它执行的查询。确保此查询看起来像您想要的。使用您的数据库分析执行计划并确保存在必要的索引。

180,000行对于一个像样的数据库来说没什么。除非您的查询加载了大量具有大量热切获取关联的实体,否则此查询将在几毫秒内执行。