hiberanate 主键查询慢_mysql查询优化,1万条数据居然要30秒

StringsqlO="";//排序方式if(order==null||orderType==null){sqlO="orderbypatient.createdatedesc";}elseif(orderType.equals("createdate")){if(order.equals("1")){sqlO="orderbyp...

String sqlO = "";//排序方式

if(order==null || orderType==null){

sqlO = " order by patient.createdate desc";

}else if(orderType.equals("createdate")) {

if(order.equals("1")){

sqlO = " order by patient.createdate desc";

}else {

sqlO = " order by patient.createdate asc";

}

}else if(orderType.equals("name")){

if(order.equals("1")){

sqlO = " order by patient.name desc";

}else {

sqlO = " order by patient.name asc";

}

}

sql = "select patient.* ,part.name as pn from patient,part where "

+" patient.hospitalid = '"+hospitalid+"' "

+" and patient.del='0' "

+" and patient.partid = part.id"

+ sqlO ;

sqlO是order by的 语句。

就上面这个执行出来过后,刚开始没什么,后来数据量加大了,1万多条的数据 居然要30秒才显示出来。我都快哭了,这才1万条数据啊。而且长期回出现 Java heap space.堆栈大小这玩意我已经尝试过N多种方法了。还是有时候回出现 java heap space.

所以 目前怀疑的是上面那sql语句的问题。我对数据库不是很了解。

听说要用什么索引。但我不知道什么写,网上看了很多资料,没点头绪。

希望高手帮我优化下 上面这条sql.鄙人不胜感激。

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值