mybatis sql查询条件有两个字段同时判断数字大于等于0时查询效率非常慢

发布于 2022-08-16 08:56:56 字数 422 浏览 20 评论 18

将sql语句在数据库查询速度不过1秒都不到在在后台却发现非常慢,通过打印dao方法时间和看mybatis log发现速度确实是很慢不是其他问题,慢就慢在同时有两个字段判断小于等于0所致,有什么好的方法优化一下吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

心在旅行 2022-08-20 01:13:51

explain 看执行计划

汐鸠 2022-08-20 01:13:50

还是得深入排查,不太可能是mybatis导致的

浅笑轻吟梦一曲 2022-08-20 01:13:47

打印下执行sql查看执行sql在数据库中的执行速度

陪我终i 2022-08-20 01:13:44

复杂SQL不建议用orm

明天过后 2022-08-20 01:13:44

开启MyBatis plus SQL日志打印,看看生成的SQL?

(哪俩小于等于0的字段?给的信息不全,无法判断)

日记撕了你也走了 2022-08-20 01:13:39

数据库的开发客户端,一般只返回结果集的前几十条。如果你返回数据超大。就会出现在客户端执行速度好像很快,实际业务超慢的情况。 还有就是执行计划,开发客户端和应用里面,走了两个不同的执行计划。预编译SQL和写死数值的SQL,执行计划可能完全不一样。 所以优化SQL,必须 真实确认执行计划。

遮云壑 2022-08-20 01:13:32

回复
@魔力猫 : 正常查验慢sql问题是,使用数据库工具都会设置返回所有结果集,除非博主忘了。关于“预编译SQL和写死数值的SQL,执行计划可能完全不一样。”有没有什么方法,毕竟预编译sql执行计划没地查看

梅倚清风 2022-08-20 01:13:22

回复
看具体数据库了。oracle 就很简单

烟花易冷人易散 2022-08-20 01:13:08

各位审题审题!“将sql语句在数据库查询速度不过1秒都不到在在后台却发现非常慢” 

情泪▽动烟 2022-08-20 01:13:04

楼上说得是对的,题主需要的是跑个计划分析。与其在程序里分析SQL语句,不如直接 在数据库里跑一下计划分析或explain。计划分析会告诉你哪一段sql脚本执行的速度,这时再针对于不同的情况采用不同的优化方案这才样会比较好。

戈亓 2022-08-20 01:12:51

跑执行计划分析,这看的出个啥

不羁少年 2022-08-20 01:12:34

你先把to_char换成to_date放到表达式右边吧。这是一眼就能看到的错误SQL写法。你所说的数字判断到底是不是拖慢的因素,走一个执行计划分析看一下。

分開簡單 2022-08-20 01:12:15

回复
@kakai : 包裹整个条件语句应该不需要,只要把特定符号包裹进去,我觉得就行了

贪了杯 2022-08-20 01:12:14

回复
@kakai : 这个是idea显示效果问题,源码肯定是>=

娇纵 2022-08-20 01:08:51

回复
@ycwangrd : 我的idea 2021.3版本没有对xml中的大于小于号做特殊处理,怎么写的怎么显示。

天涯离梦残月幽梦 2022-08-20 00:36:41

回复
@kakai : 已经发现问题了,如果传入参数为Integer类型且值为0时,MyBatis源码中会把0转为空串,字段判断时需要增加 creditAmountL!='' or 0 == creditAmountL"

2022-08-19 18:11:53

回复
数据库实体类中字段的基本数据类型都应该用其对应的包装类,比如int应该使用Integer

酷炫老祖宗 2022-08-18 10:05:51

我咋觉得,这个xml配置就是错误的呢?里面sql出现了<>这两种符号,其中一个必然需要使用cddata包裹,xml才不会错误吧?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文