美文网首页
mysql数据库优化 (一) in与not in

mysql数据库优化 (一) in与not in

作者: Java_Pro | 来源:发表于2018-09-17 11:48 被阅读0次

场景

查询一张表的数据是否存在于另一张表中
第一写法就是用in或者not in
例如

select * from a where id in (select aid from b)

优缺点

  • 直观
  • 效率低下(in会扫描全表)
  • 不适合大数据量

解决办法

  1. 使用EXISTS代替IN
select * from a where exists (select aid from b where a.id=b.aid)
  1. 使用左连接代替NOT IN,也可以用NOT EXISTS代替
select * from a 
left join b on a.id=b.aid
where b.aid is null

相关文章

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • MySQL书目

    MySQL数据库索引设计与优化 MySQL技术内幕 MySQL排错指南 高性能MySQL MySQL DBA修炼之道

  • MySql表设计与优化

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 1、实体关系分析 实体关系需...

  • MySQL数据库与SQL优化

    一、MySQL数据库 - SQL优化 MySQL DBMS - MySQL Database Management...

  • 学习的技术栈,技术书籍必看for me

    《高性能MySQL》 《数据库索引设计与优化》 《MySQL技术内幕:InnoDB存储引擎》 《数据结构与算法分析...

  • 无标题文章

    目录 笔记大型项目优化概述大型项目优化的方向代码优化数据库优化缓存优化架构优化Memcache与MySQL比较语法...

  • MySQL(4)应用优化

    MySQL应用优化 4.1-MySQL索引优化与设计 索引的作用 快速定位要查找的数据 数据库索引查找 全表扫描 ...

  • 【学习笔记】MySQL相关

    参考文章:理解MySQL——索引与优化一个小时学会MySQL数据库Innodb Cluster?????暂未搭建成功

  • MySQL5:性能优化

    性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能。MySQL优化,一方面是找出系统的瓶颈,提...

  • MySQL-性能优化-优化设计和设计原则

    MySQL-性能优化-优化设计和设计原则 MySQL性能优化目的 如何合理的设计数据库? 什么样的数据库设计才能给...

网友评论

      本文标题:mysql数据库优化 (一) in与not in

      本文链接:https://www.haomeiwen.com/subject/dyrknftx.html