mybatis执行慢,sql配置中#与$

在项目中使用MyBatis时,遇到数据库量大导致查询慢的问题,尤其在生产环境中,发现是MyBatis内部SqlSession生成耗时严重。通过将#替换为$来优化,使得生产环境中的SqlSession生成速度得到显著提升。文章记录了这一现象、初步解决方式及可能的原因分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在一个项目中,使用了mybatis,在实验环境中一切正常,在正式环境中数据库量比较大,出现查询慢的情况,是特别慢,但生成的sql在pl/sql中并不慢。困扰了很久(现在也没有完全解决),后来发现是mybatis在生产内部SqlSession时特别耗时(具体原因不明)。将sql配置中部分的#改为$,生产SqlSession就很快了。

     在mybatis中使用#相当于jdbc中的?,使用$相当于最直接拼写sql。使用?,不管器参数怎么变,都可以重复利用数据库对sql的分析。可能是这个sql分析过程导致SqlSession生成特别慢。

     只说了现象,和初略的解决方式。做个记录,水平高了再分析原因。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值