我正在使用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使用索引?
答案 0 :(得分:3)
除了生成SQL查询并执行它之外,Hibernate不会执行任何操作。打开登录名以查看它执行的查询。确保此查询看起来像您想要的。使用您的数据库分析执行计划并确保存在必要的索引。
180,000行对于一个像样的数据库来说没什么。除非您的查询加载了大量具有大量热切获取关联的实体,否则此查询将在几毫秒内执行。