简单说下问题,有一个JDBC的查询SQL,分页查询语句中有一个排序order by create_time,理论上来说JDBC查询已经是比较底层的技术了,没有像Hibernate、MyBatis那样又对JDBC进行了封装,效率肯定是最好的,可谁想,3w多条数据,竟然慢的要死,经常抛出超时异常


遇到问题之后,首先在网上搜罗资料

关于Oracle排序的:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html

也找到一个排序分页很慢的帖子:http://www.itpub.net/thread-1179246-1-1.html,好几年前的了,最终也没结贴


网上提到的各种解决办法,要么先分析SQL执行效率,要么建索引,但是根据经验来判断,一共就3w来条数据,怎么就会慢呢


仔细看了数据库中的数据,发现一个明显的问题,排序的字段create_time竟然有2w多条数据都是null值,终于找到原因了,没错,原因就是因为排序字段是相同的null值,分页之后查询就会很慢


找到原因,解决办法就简单了,把排序字段的null值赋值为流水时间即可~

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
  • 2022-01-30
  • 2023-03-21
  • 2018-10-23
猜你喜欢
  • 2021-11-03
  • 2021-11-07
  • 2022-12-23
  • 2021-10-26
  • 2021-10-09
  • 2022-12-23
相关资源
相似解决方案