首页 > 数据库 >同一sql mybatis比Navicat慢了30倍

同一sql mybatis比Navicat慢了30倍

时间:2024-03-19 18:58:33浏览次数:22  
标签:顺序 数据库 30 Navicat sql mybatis 执行 where

今天帮同事处理了一个bug,有个sql语句后端执行耗时6000多毫秒,在navicat中执行只需200毫秒,速度相差30倍。项目后端mybatis,数据库pgsql。

结合网上的资料和自己的经验,实验了三种方法:

1、mybatis参数连接符#换成$

结果有效,但有sql注入风险,代码审查不通过。

2、mybatis参数固定数据类型

如#{startTime}改为#{startTime,jdbcType=DATE}

结果无效。

3、调整where条件顺序

最后利用sql调优的思路,试着换了一下where条件的先后顺序,将能够最大过滤数据的条件从最右边挪到最左边,结果完美。

虽然问题解决,但还是有疑惑,根据我这个老码农的经验,where条件的执行顺序,不是从右往左执行吗?啥候成从左往右执行了?带着疑惑,我又查了下资料,恍然大悟:

oracle数据库where条件执行顺序是从右往左。

mysql、pgsql数据库where条件执行顺序是从左往右。 

因为我16年前开始工作时数据库基本是oracle天下,习惯了where从右往左的调优,久而久之,潜意识认为数据库都是从右往左了,犯了经验主义的错误啊。

标签:顺序,数据库,30,Navicat,sql,mybatis,执行,where
From: https://blog.csdn.net/wuqingliang510/article/details/136757846

相关文章

  • 使用navicat导出查询大量数据结果集并导入到其他数据库(mysql)
    在工作中我们偶尔会遇到处理数据的问题;比如需要将处理后的结果集导出来再导入到数据;具体的的实现方案有:1、导出excel再导入在navicat中选中对应数据库的表对象,右键选择导入,导出向导,如图: 2、将查询的结果集导出成sql实现步骤:先整理查询的sql;执行查询,再选择对话框上面的......
  • mybatis工作原理简介
    一、前言本例没有引入spring框架。简单介绍了mybatis查询数据库数据的流程。 二、准备工作1,安装数据库此处安装mysql,官网下载“社区版”,过程百度。 2,安装可视化工具此处安装sqlyog,官网下载“社区版”,过程百度。3,创建maven项目,引入mybatisa,idea上,New->Project->......
  • 基于SpringBoot+MyBatis-Plus的图书管理系统
    基于SpringBoot的图书管理系统图书管理系统开发技术功能模块代码结构数据库设计运行截图源码获取图书管理系统开发技术技术:SpringBoot、MyBatis-Plus、MySQL、Beetl、Layui。框架:基于开源框架Snowy-Layui开发。工具:IDEA、Navicat等。功能模块内置三种角色:超级......
  • 鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业
    随着企业的快速发展,招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求,建立一个公平、公开、公正的采购环境至关重要。在这个背景下,我们开发了一款电子招标采购软件,以最大限度地控制采购成本,提高招投标工作的公开性和透明性,并确保符合国家电子招投标......
  • Mybatis使用JDBC实现数据库批量添加
    1、spring注入数据源@Resource(name="dataSource")privateDataSourcedataSource;2、连接数据库批量添加publicvoidinsertJdbc(List<StatisticStatus>statusList)throwsSQLException{Connectionconnection=null;PreparedStatem......
  • 上海安川机器人SGM7G-30APK-YR11电机维修让你放心
    一、安川机器人SGM7G-30APK-YR11电机常见电机故障·绕组短路:电机长时间运行或过载可能导致绕组绝缘层损坏,进而引发短路。·轴承磨损:轴承是安川机器人SGM7G-30APK-YR11电机转动的关键部件,长时间使用或缺乏维护会导致磨损,影响电机精度和稳定性。·编码器故障:编码器用于提供......
  • LY1169 [ 20230328 CQYC省选模拟赛 T1 ] 传奇特级超空间
    题意设\(f_{n,m}\)表示\(m\)维空间能被\(n\)个\(m-1\)维空间划分的最大区域数。求\(\sum_{i=0}^mf_{n,i}\)\(n,m\le10^{18},p\le2\times10^7\)Sol注意到:\(f_{n,m}=f_{n-1,m-1}+f_{n-1,m}\)。不难想到\(f\)应该是组合数的前缀......
  • 代码随想录算法训练营第五十一天| ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股
    最佳买卖股票时机含冷冻期  题目链接:309.买卖股票的最佳时机含冷冻期-力扣(LeetCode)思路:本题难点在于如何将冷冻期加入到状态转移方程中,不妨画个图:按理来说,如何我们正处于买入状态,将股票卖出后,应该是冷冻状态,但是这里多加了一个今日卖出状态,就是将今日卖出和卖出状态分开......
  • 代码随想录算法训练营第五十一天 | 714.买卖股票的最佳时机含手续费,309.最佳买卖股票
     股票总结https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92-%E8%82%A1%E7%A5%A8%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93%E7%AF%87.html 714.买卖股票的最佳时机含手续费 已解答中等 相关标签相关企业 提示 给定一个......
  • 【Database】基于Mybatis的多数据源连接实现方式
    场景出于种种原因有些时候我们的项目中会用到同时连接多个数据源的情况,比如数据太大了分了多个库,又比如统计任务只能读原始数据的数据库,写只能在统计结果的库中。设计思路基于mybatis我们的方案是这样的,需要自己实现一个SqlSessionTemplate,里面维护了一个dbId到SqlSessionFact......