最近项目上用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的优化相关推荐

  1. Mysql中查询速度的优化

    2019独角兽企业重金招聘Python工程师标准>>> mysql中查询速度的优化 1.查看每一个表的数据量 2.left join的时候尽量减少表的大小,通过临时表,查询条件去限制 ...

  2. MySQL中的limit分页优化

    MySQL中的limit分页优化 MySQL的limit优化 mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,my ...

  3. MySQL中常用的SQL优化方法

    SQL优化的方法有很多种,针对平时的情况总结一下几种: 以下用到的表和数据,可以通过这篇文章中的语句添加: MySQL执行计划explain的详解_蓝星部队的博客-CSDN博客一.如何查看SQL执行计 ...

  4. MySQL中的翻页优化和延迟缓存

    limit offset,N 当offset非常大时,效率极低.  原因是:mysql并不是跳过offset行,然后单取N行.而是取offset+N行. 返回时,放弃前offset行,返回N行.效率较 ...

  5. MySQL中针对SQL语句优化

    sql方面的优化最简单最直观的就是: 1.在频繁出现的查询条件处加索引: 2.使用explain看下执行计划 准备测试表: CREATE TABLE `t_user_test` ( `id` INT( ...

  6. mysql count innodb 不正确_关于mysql中innodb的count优化问题分享

    一般采用二级索引去count: 比如:id 是pk aid是secondary index 采用 复制代码 代码如下: select count(*) from table where id > ...

  7. LRU 算法在 MySQL 和 Redis 中的实现与优化

    本文转载于我的个人公众号"阿东编程之路" 一. 什么是LRU算法 LRU 算法全称:Least Recently Used,故名思义就是最近最少被使用的.一般会用 LRU 算法来实 ...

  8. mysql中count出来的条数有误_Mysql中count()使用的问题?

    简介: count()函数用来统计表的行数,也就是统计记录行数,很好理解的,但面试你这么说就有点单薄了. count()函数具体情况下的各种分析: 各类面试题总结了一下,应该遇到的话不会怕了: 1)为 ...

  9. mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)...

    mysql数据库优化课程---15.mysql优化步骤(mysql中最常用最立竿见影的优化是什么) 一.总结 一句话总结:索引优化最立竿见影 索引优化:不然有多少行要扫描多少次,1亿行大概是5到10分 ...

最新文章

  1. redis3.2的安装和使用
  2. [MySQL FAQ]系列 -- MySQL支持绑定到多个ip上吗
  3. zstack快速安装文档
  4. 编写了一个通过手机短信平台收发短信的软件
  5. python多线程扫描_python实现多线程扫描网站目录
  6. Java设计模式-外观模式
  7. ThemeResolver
  8. USB 设备类协议入门【转】
  9. 数据揭秘中国女性的薪水普遍比男性低,说好的“同工同酬”呢?
  10. 几点减几点怎么列算式_节日礼品怎么挑选 这几点很关键
  11. 【java】创建一个JFrame,可以使得一个字符串用按钮进行颜色的选择
  12. 空间波(space wave)
  13. 给为工作而焦急迷茫的你
  14. badboy无法录制 浏览器版本过低请下载最新的Badboy
  15. c#实现短信发送程序
  16. 矸石称重自动化系统有什么特点
  17. 解决python.exe 无法找到程序入口,无法定位程序输入点
  18. MT6323 PMIC 功能介绍
  19. SAP QM 检验批里某检验特性的取样数量跟检验计划设置不符?
  20. 抖音限流概念及如何避免限流?

热门文章

  1. jquery解析php json,使用jQuery解析PHP Json对象.
  2. golang 初始化并赋值_Golang 切片综合指南
  3. Java开发者需要掌握的基础知识
  4. 现在ui设计出来好找工作吗?
  5. 为初学者介绍10个最常被问到的Javascript问题
  6. 骆斌软件工程基础思维导图
  7. python把print写入文件_Python中用print方法向文件中写入内容
  8. c++设置一个二维字符组初值_6.8 C++字符数组
  9. bootstrap php 多行,使用PHP循环将Bootstrap行和正确的列号添加到元素
  10. spark 查看yarn日志_spark周边项目之Livy