sql在数据库执行正常在mybatis中执行很慢

这篇具有很好参考价值的文章主要介绍了sql在数据库执行正常在mybatis中执行很慢。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近项目组压力测试发现一个BUG,某个分页查询sql在数据量变大之后,在数据库执行正常,在mybatis执行很慢。


一、方案一${index}替换#{index}

代码如下(示例):

#{参数} 换成 '${参数}' 

这样替换之后,确实变快了,但是${}的写法不能防sql注入。

二、方案二#{index,jdbcType=NVARCAHR}替换#{index}

代码如下(示例):

#{参数} 换成 #{参数,jdbcType=NVARCAHR}

这样替换之后,也变快了,也能防sql注入。

总结

以上就是本次BUG的解决过程,原因猜测可能是数据量增长后,执行sql需要花费更多时间确定参数类型,后续有发现再更新。文章来源地址https://www.toymoban.com/news/detail-637840.html

到了这里,关于sql在数据库执行正常在mybatis中执行很慢的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库中的SQL是如何执行的?

    参考文献:03丨学会用数据库的方式思考SQL是如何执行的 以oracle和MySQL为例,讲解了sql是怎么被执行的,并且对比了执行过程中,oracle和MySQL的异同。 个人感觉,讲解的核心是SQL执行时的缓存机制。 自我口述一下 sql语句在提交后, 首先进行“语法检查”,检查sql语法是否正

    2024年02月09日
    浏览(49)
  • Navicat中导入数据库SQL脚本并执行

    1、打开Navicat数据库管理工具; 2、点击菜单栏上的“工具”,选择“命令列界面”; 打开了命令列界面 3、复制sql脚本到命令列界面内,按enter(回车)执行,会发现执行成功的OK返回消息,如下所示: 4、刷新,否则无法看到新增的数据库、数据表、数据表中的记录

    2024年02月11日
    浏览(66)
  • postgresql|数据库|批量执行SQL脚本文件的shell脚本

    对于数据库的维护而言,肯定是有SQL脚本的执行,例如,某个项目需要更新,那么,可能会有很多的SQL脚本需要执行,SQL脚本可能会包含有建表,插入数据,索引建立,约束建立,主外键建立等等内容。 那么,几个SQL脚本可能无所谓,navicat或者psql命令行 简简单单的就导入了

    2024年02月01日
    浏览(73)
  • 【Sql】sql server数据库提示:执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。

    【问题描述】 打开sql server2008r2数据库的时候, 系统提示执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。 【概念理解】 首先MSDB数据库是的作用: 用于给SQL Server代理提供必要的信息来运行调度警报、作业及记录操作。同时也会记录数据库的备份和

    2024年02月04日
    浏览(75)
  • Springboot + Mybatis 同时支持多类数据库SQL的解决方案

    pg、Oracle、MySQL 的字符串转日志函数不同,可通过 _databaseId 来判断该执行哪段SQL 多余的代码就不写上了,直接根据下列代码就能理解。

    2024年02月09日
    浏览(54)
  • PostgreSQL数据库命令行执行SQL脚本的三种方式

    生成环境中,出于安全性等原因,往往不提供数据库连接工具,所以对数据库的更新和升级就得通过命令行来实现。本文总结了三种命令行执行sql脚本的方式。 命令格式: psql [option…] [dbname] [username] 常用参数介绍: -h:指定IP地址或主机名。 -p:指定端口,默认为5432。 -U:

    2024年02月11日
    浏览(66)
  • SQL Server数据库判断最近一次的备份执行结果

    在SQL Server的官方文档里面可以看到备份和还原的表,但是这些表里面只能找到备份成功的相关信息,无法找到备份失败的记录,比如 msdb.dbo.backupset 。对于一些监控系统未监控作业的情况下,想要监控数据库备份任务执行失败而触发告警规则,有些麻烦。 但是SQL server内部是

    2024年02月03日
    浏览(85)
  • mapper.xml中循环执行多条语句时报错,但是单独拿SQL到数据库却可以执行

    我是批量修改数据,用foreach标签包住update语句,报错信息如下: 最后解决,在数据源配置中添加参数:

    2024年02月12日
    浏览(41)
  • Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法

    🎉欢迎来到Java学习路线专栏~Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹

    2024年01月22日
    浏览(57)
  • 自己动手做数据库系统:解释执行 update 和 delete 对应的 sql 语句

    在上一节我们完成了 select 语句的解释执行,本节我们看看 Update 和 Delete 对应的语句如何解释执行,当然他们的实现原理跟我们前面实现的 select 语句执行大同小异。无论是 update还是 delete 都是对数据表的修改,因此他们的实现方法基本相同。 假设我们要执行如下 sql 语句:

    2024年01月22日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包