MySql中not in的优化
最近项目上用select查询时使用到了not in来排除用不到的主键id一开始使用的sql如下:
select
s.SORT_ID,
s.SORT_NAME,
s.SORT_STATUS,
s.SORT_LOGO_URL,
s.SORT_LOGO_URL_LIGHT
from SYS_SORT_PROMOTE s
WHERE
s.SORT_NAME = '必听经典'
AND s.SORT_ID NOT IN ("SORTID001")
limit 1;
表中的数据较多时这个sql的执行时间较长、执行效率低,在网上找资料说可以用 left join进行优化,优化后的sql如下:
select
s.SORT_ID,
s.SORT_NAME,
s.SORT_STATUS,
s.SORT_LOGO_URL,
s.SORT_LOGO_URL_LIGHT
from SYS_SORT_PROMOTE s
left join (select SORT_ID from SYS_SORT_PROMOTE where SORT_ID=#{sortId}) b
on s.SORT_ID = b.SORT_ID
WHERE
b.SORT_ID IS NULL
AND s.SORT_NAME = '必听经典'
limit 1;
上述SORT_ID=#{sortId} 中的sortId传入SORT_ID这个字段需要排除的Id值,左外连接时以需要筛选的字段(SORT_ID)作为连接条件,最后在where条件中加上b.SORT_ID IS NULL来将表中的相关数据筛选掉就可以了。
这里写下随笔,记录下优化过程。
转载于:https://www.cnblogs.com/8593l/p/9783363.html
MySql中not in的优化相关推荐
- Mysql中查询速度的优化
2019独角兽企业重金招聘Python工程师标准>>> mysql中查询速度的优化 1.查看每一个表的数据量 2.left join的时候尽量减少表的大小,通过临时表,查询条件去限制 ...
- MySQL中的limit分页优化
MySQL中的limit分页优化 MySQL的limit优化 mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,my ...
- MySQL中常用的SQL优化方法
SQL优化的方法有很多种,针对平时的情况总结一下几种: 以下用到的表和数据,可以通过这篇文章中的语句添加: MySQL执行计划explain的详解_蓝星部队的博客-CSDN博客一.如何查看SQL执行计 ...
- MySQL中的翻页优化和延迟缓存
limit offset,N 当offset非常大时,效率极低. 原因是:mysql并不是跳过offset行,然后单取N行.而是取offset+N行. 返回时,放弃前offset行,返回N行.效率较 ...
- MySQL中针对SQL语句优化
sql方面的优化最简单最直观的就是: 1.在频繁出现的查询条件处加索引: 2.使用explain看下执行计划 准备测试表: CREATE TABLE `t_user_test` ( `id` INT( ...
- mysql count innodb 不正确_关于mysql中innodb的count优化问题分享
一般采用二级索引去count: 比如:id 是pk aid是secondary index 采用 复制代码 代码如下: select count(*) from table where id > ...
- LRU 算法在 MySQL 和 Redis 中的实现与优化
本文转载于我的个人公众号"阿东编程之路" 一. 什么是LRU算法 LRU 算法全称:Least Recently Used,故名思义就是最近最少被使用的.一般会用 LRU 算法来实 ...
- mysql中count出来的条数有误_Mysql中count()使用的问题?
简介: count()函数用来统计表的行数,也就是统计记录行数,很好理解的,但面试你这么说就有点单薄了. count()函数具体情况下的各种分析: 各类面试题总结了一下,应该遇到的话不会怕了: 1)为 ...
- mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)...
mysql数据库优化课程---15.mysql优化步骤(mysql中最常用最立竿见影的优化是什么) 一.总结 一句话总结:索引优化最立竿见影 索引优化:不然有多少行要扫描多少次,1亿行大概是5到10分 ...
最新文章
- redis3.2的安装和使用
- [MySQL FAQ]系列 -- MySQL支持绑定到多个ip上吗
- zstack快速安装文档
- 编写了一个通过手机短信平台收发短信的软件
- python多线程扫描_python实现多线程扫描网站目录
- Java设计模式-外观模式
- ThemeResolver
- USB 设备类协议入门【转】
- 数据揭秘中国女性的薪水普遍比男性低,说好的“同工同酬”呢?
- 几点减几点怎么列算式_节日礼品怎么挑选 这几点很关键
- 【java】创建一个JFrame,可以使得一个字符串用按钮进行颜色的选择
- 空间波(space wave)
- 给为工作而焦急迷茫的你
- badboy无法录制 浏览器版本过低请下载最新的Badboy
- c#实现短信发送程序
- 矸石称重自动化系统有什么特点
- 解决python.exe 无法找到程序入口,无法定位程序输入点
- MT6323 PMIC 功能介绍
- SAP QM 检验批里某检验特性的取样数量跟检验计划设置不符?
- 抖音限流概念及如何避免限流?
热门文章
- jquery解析php json,使用jQuery解析PHP Json对象.
- golang 初始化并赋值_Golang 切片综合指南
- Java开发者需要掌握的基础知识
- 现在ui设计出来好找工作吗?
- 为初学者介绍10个最常被问到的Javascript问题
- 骆斌软件工程基础思维导图
- python把print写入文件_Python中用print方法向文件中写入内容
- c++设置一个二维字符组初值_6.8 C++字符数组
- bootstrap php 多行,使用PHP循环将Bootstrap行和正确的列号添加到元素
- spark 查看yarn日志_spark周边项目之Livy