dihao26018 2009-08-04 11:43
浏览 1410
已采纳

关于Hibernate hql中IS NULL和IS NOT NULL语句的替代问题

今天看到应该尽量避免使用IS NULL和IS NOT NULL,理由如下:

Where字句中的IS NULL和IS NOT NULL将不会使用索引而是进行全表搜索,因此需要通过改变查询方式,分情况讨论等方法,去掉Where子句中的IS NULL和IS NOT NULL。

请问这两个语句有什么不影响效率的语句或方法来进行替代吗?
[b]问题补充:[/b]
有时候,IS NULL语句是不可避免的,handonghandong所提的是不是通过Hibernate分批次取出数据,比如每次取100条,避免全表搜索的出现?

但我想问的是在全表进行搜索,取出所有name为空的记录,如果使用IS NULL的话,对这个表所建的索引就会失效,请问有没有什么语句可以替代呢?

  • 写回答

2条回答

  • web_killer 2009-08-04 21:44
    关注

    首先若是全表搜索的话,如果表中数据很多,我建议分页,这样可以提高效率
    若在一张表中的话,我认为效率可能不会太高太大,毕竟hql语句执行where还是在前面的,还有就是你可以使用Query接口试试呢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频