SQL组合查询:(字段1, 字段2) in ((v1, v2),(v3, v4))
目录
优化前
优化后
场景:数据库表两个字段组成唯一键,需要批量用唯一键查询记录
UNIQUE KEY `uk_channel_org` (`channel`, `org`),
优化前
for (ChannelOrg channelOrg : channelOrgList) {//循环中查询数据库ChannelOrgLevelConfigDO config = channelOrgLevelConfigService.getNode(channelOrg);//...省略
}
缺:循环中查询数据库,有大量IO,影响性能,不可控
优化后
//组合查询后,组装得到对应记录map
Map<ChannelOrg, ChannelOrgLevelConfigDO> channelOrgConfigMap = channelOrgLevelConfigService.getNodeMap(channelOrgList);//循环处理(避免循环查询数据库,大量IO影响性能)
for (ChannelOrg channelOrg : channelOrgList) {ChannelOrgLevelConfigDO config = channelOrgConfigMap.get(channelOrg);//...省略
}
优:避免循环中查询数据库,提高接口性能
sql实现
//sql 查询得到list
select * from pss_channel_org_level_config where (channel, org) in
<foreach close=")" collection="params" item="item" open="(" separator=",">(#{item.channel}, #{item.orgCode})
</foreach>
sql执行计划:命中唯一键索引
SQL组合查询:(字段1, 字段2) in ((v1, v2),(v3, v4))相关推荐
- sql基础查询 多个字段查询——去除重复——计算列——起别名
-- 查询 名字 年龄 -- 查询语句 同时也是多个字段的查询 select 字段1 ,字段2...from 表名 这个语句查询什么就只会显示什么数据 SELECT NAME ,-- 姓 ...
- sql 统计查询某一字段的某一个值的总条数
查询某一字段的某一个值的总条数 比如:orderprogressno字段的值分别为1,2,3,4,那么就是查询值为1的总条数和值为2的总条数 select orderno,count(orderpro ...
- mysql存储过程判断多个条件语句_存储过程里多条件判断(SQL组合查询)
我存储过程里想实现多个传入参数的判断,里面有7个传入参数条件. CREATE PROCEDURE sp_tbWasteSource_Search ( @sd datetime, ...
- sql server查询某一字段不重复的数据_初识数据库
数据模型 层次模型 以上下级的层次关系来组织数据的一种方式,其数据结构类似一棵树: 网状模型 将每个数据节点与其他很多节点连接起来,其数据结构类似城市的交通网: 关系模型 将数据看做一个二维表格,数据 ...
- sql语句查询,多字段like模糊查询优化
1.多字段like模糊查询优化: 最常见的写法: where a like '%xx%' or b like '%xx%' or c like '%xx%' 这种写法查询效率低,经过调查,下面的方法可 ...
- sql 语句 查询两个字段都相同的方法
这是替代方法 先使用着 select * from ofgroup where groupId in (select groupId from ofgroup where uid ='". ...
- SQL组合查询union
对一个表执行多个查询,按一个查询返回数据: select 属性集合0 form 表0 where 逻辑组合0 union select 属性集合0form 表0 where 逻辑组合1 等价于 sel ...
- sql组合字段in查询
前段时间看到了一个MYSQL数据库的sql的用法,是一个早就有的sql语法,但是从来没使用过,也没见过,当时就看了一下. 今天业务上有个需求刚好符合使用这种语法的情况,我就想去找找,结果忘记这个语法叫 ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
最新文章
- Webservice开发之xsd中开发请求数据的响应接口
- 云游戏打破硬件限制,传输体验或成发展掣肘!
- Binding(二):控件关联和代码提升
- 11g java 驱动_Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
- mysql按照日期先去重在分组_【巨杉数据库Sequoiadb】【咨询】【数据操作】【聚集查询】在执行聚集查询时,字符类型的字段能否按照实际内容进行分组去重...
- 原生JS大揭秘—数据类型
- 理解 Generator 的执行
- 简单叙述tcp/ip的工作原理和主要的协议_802.11协议精读3:CSMA/CD与CSMA/CA
- ###Tomcat目录介绍和基础
- nx零件库插件_3DSource企业自定义零件库插件
- 天翼去主机linux密码是什么意思,useradmin天翼初始密码 密码都是admin
- [转载]使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- 计算机图形学 :中点画圆法
- 准备写个linux下的千千静听
- Excel为图表指定横向坐标数据
- Spring中AOP的Introductions使用介绍
- 数据科学家大减价:一小时只收30美元
- 双控专业就业机器人_东北大学自动化双控考研专业就业方向
- ORA-21561: OID generation failed
- 基于opencv的人脸识别和检测
热门文章
- Python学习之---求100以内素数的八种解法
- MySQL数据库之全量+增量+二进制日志的备份与恢复
- Android 遗忘率贼高的方法和代码汇总
- Python-Django毕业设计基于微信小程序的网上购物系统(程序+Lw)
- docker mongo exited with code 100
- 软件工程面向对象方法画图题_软件工程试题(1)
- 一堂难忘的计算机课作文,记一堂电脑课作文
- 银河麒麟V10安装MySQL5.7
- 初识Kafka-概念速览|安装与配置—《Kafka权威指南》笔记
- Android转Java两年,还不会写SQL?