我的数据库表(geo ip 查找)有 7 列,其中 2 列构成 <composite-id>。现在,当我使用前 2 个列查找值时,我需要12-14 秒才能获取记录..
我的 DAO 代码如下所示:
String queryString = "from Igeo igeo where igeo.ip_from <= " + ip
+ "and igeo.ip_to >= " + ip;
Query q = session.createQuery(queryString);
List<Igeo> igeoList = q.list();
if(igeoList.size() > 0){
Igeo igeo = igeoList.get(0);
ISP = igeo.getIsp();
...
...
}
*Igeo = java 代表表中的类
**当 ip 位于复合 ID 列的值之间时获取记录,例如。
ip_from = 1 ; ip_to = 3 ; ip = 2;
所以上面的行将被返回
该表仅用于读取记录,请给我一个比上面更有效的查询字符串