首页 > 数据库 >关于把long类型的参数直接传到xml中当sql查询的参数非常慢这件事

关于把long类型的参数直接传到xml中当sql查询的参数非常慢这件事

时间:2023-12-18 20:11:19浏览次数:39  
标签:xml form long 索引 参数 失效 NULL ref id

起初,有一张表超级大想要将表复制下来 如果查出来list再去复制这将非常慢,听了同事的建议使用了insert into (select * from table)速度得到了显著改善。可是我写代码的时候,再调用接口的时候发现足足有15s,而navicat执行sql语句只有400ms,感觉哪里出了问题但还不知道,最终经过同事的明察秋毫发现我的传参出了问题。

sql如下:

INSERT INTO quality_evaluate_autoform (
            SELECT
                UUID_SHORT(),
                form_name,
                form_code,
                NULL,
                CASE
                    WHEN fill_state != '未填写' THEN
                        '已填写'
                    when fill_state = '未填写' then
                    '未填写'
                    END AS fill_state,
                signature_number,
                0,
                NULL,
                NULL,
                file_token,
                NULL,
                default_form_data,
                form_data,
                html_original_body,
                html_body,
                NULL,
                #{id},
                NULL,
                ref_autoform_htmldata_id,
                ref_autoform_id,
                ref_directory_tree_node_id,
                NULL,
                NULL,
                NULL,
                NULL,
                NULL,
                now(),
                NULL,
                now(),
                0,
                NULL,
                NULL,
                NULL
            FROM
                quality_evaluate_autoform
            WHERE
                ref_wbs_node_id = #{wbsNodeId}
              AND delete_flag = 0)

  

就是因为#{wbsNodeId} 这个参数我在代码传参时候不小心用了long类型而导致的!我的天!400ms的事情因为一个类型转换变成了15s,而且还因为转换类型使得ref_wbs_Node_id上的索引失效!所以一定要仔细看好每一步的传参!

1. 用or索引失效——解决用in 代替or

2. 字段使用函数导致索引失效

3. 隐式类型转换会使索引失效!(我就是犯了这个)

4. like +”%param%“ 索引失效

5. 如果查询索引辨识度低,索引可能也不会用

6. NULL值:如果索引列包含NULL值,并且查询条件中没有明确处理NULL值的情况,可能会导致索引失效

标签:xml,form,long,索引,参数,失效,NULL,ref,id
From: https://www.cnblogs.com/xiaozi718/p/17912130.html

相关文章

  • 高性能Mixtral:467亿参数MoE技术,逼近GPT-3.5与GPT-4
    模型简介近日,MistralAI团队发布了全新的大型语言模型——Mixtral8x7B。这款以稀疏专家混合模型(SparseMixture-of-Experts,简称SMoE)为基础的语言模型,拥有467亿个参数,是当前市场上最强大的开源权重模型之一。不仅如此,Mixtral8x7B还在Apache2.0许可下开源,为开发者社区提供了一个全......
  • MyBatis方法入参打@Param后,xml中的取值方式
    /***分页查询对账结果**@parampage*@paramrequestBO*@return*/Page<ReconcileDetailResultPageBO>pageDetailSettleDataAndResult(IPage<ReconcileDetailResultPageBO>page,@Param("requestBO")ReconcileDetailResultPageRequestBOrequestBO)......
  • Java里Integer怎么转成Long
    在Java中,你可以使用装箱(Boxing)和拆箱(Unboxing)的概念来进行Integer到Long的转换。具体方法如下:IntegerintValue=42;//你的整数值LonglongValue=intValue.longValue();这里的longValue()方法将Integer对象转换为对应的long型值,因为Long是整数的64位表示,而Integer是32位表示......
  • JavaWeb - Day09 - Mybatis - 基础操作、XML映射文件、动态SQL
    01.Mybatis-基础操作-环境准备需求需求说明:根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。通过分析以上的页面原型和需求,我们确定了功能列表:查询根据主键ID查询条件查询新增更新删除根据主键ID删除根据......
  • 关于DC电源模块有哪些常见的输入和输出参数?
    关于DC电源模块有哪些常见的输入和输出参数?BOSHIDADC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于电子设备、通信设备、工业控制、仪器仪表等各个领域。在选择和使用DC电源模块时,了解其常见的输入和输出参数是很重要的。输入参数是指DC电源模块的工作电压范围和电流......
  • 关于DC电源模块有哪些常见的输入和输出参数?
    关于DC电源模块有哪些常见的输入和输出参数?BOSHIDADC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于电子设备、通信设备、工业控制、仪器仪表等各个领域。在选择和使用DC电源模块时,了解其常见的输入和输出参数是很重要的。 输入参数是指DC电源模块的工作电压范围......
  • Oceanbase部分参数学习与验证
    Oceanbase部分参数学习与验证字符集等参数查看yuminstallobclient-y然后使用客户端连接:obclient-h172.24.110.175-P2881-uroot-p'Testxxxx'-Doceanbase-Amysql方式连接:mysql-h127.0.0.1-P2881-pTestxxxx#查看字符集:mysql>showvariableslike'%chara......
  • 十二、路由参数和应用数据共享
    数据传递页面跳转,使用路由传递。//page1跳转传递参数router.pushUrl({url:'pages/ParamRouter2',params:{name:'HarmonyOS4.0',age:20}})//page2接收参数le......
  • 05.capability 配置参数解析
    capability配置参数解析Capability简介功能:配置Appium会话,告诉Appium服务器需要自动化的平台的应用程序形式:键值对的集合,键对应设置的名称,值对应设置的值主要分为三部分公共部分ios部分android部分SessionAppium的客户端和服务端之间进行......
  • Spring如何j将xml配置映射为BeanDefinition
    Spring的常用配置文件是applicationContext.xml文件,最简单的,一般我们都会添加这样的配置:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins......