• Home
  • Archives
  • 随笔
所有文章 友链 关于我

  • Home
  • Archives
  • 随笔

left join与inner join的性能差异到底咋样

发布于: 2020-12-03
更新于: 2023-07-09

目前来看 inner join 在正常情况(有索引、执行计划缓存)是正常的,更高效的

结论

由于有些数据丢失了, 这里就补一些文字性的描述内容

如果两个表都能用上索引, 那么两个性能一样, 此外应注意 left join 和 inner join 写的 sql 语义是否一样的, 避免踩到了 left join 的坑里面去了。
假如索引用不上的话, 一般inner join的性能优化是优于left join的, 很多数据库对于left join的优化实在不咋滴。

RDS 类数据库

如果都有左右表都能用索引关联上, 那此处没有什么好赘述的, 这里主要聊那些索引没办法两表串联的场景。

对于 RDS 当索引无法用于快速查询时, 有自己的优化方案是:

rds实现方式

  • 好处是当满足左表的记录少时, 可以将这个 join 从 m*n 的指数级变成只是左表的 m 数量级的查询
  • 坏处就是反过来,如果左表记录特别多, 就会起到反作用了。

常见数据库

将左右表满足的数据查出,如果不能一次查询的, 还会变成 batch join, 分批查询放在内存 join, 如果还放不下的话,会转为磁盘进行操作。 相比于上面的场景,当数据量少时有时可能优于上面方案, 数据量多时就和上面的坏处有的比较了

left join与inner join的性能差异到底咋样
/archives/3e203c2a/
作者
tyrantqiao
发布于
2020-12-03
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信

扫一扫,分享到微信

微信分享二维码
原型模式learning
spring推荐构造器注入,为什么?
© 2024 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 所有文章
  • 友链
  • 关于我

tag:

  • 复盘
  • 我
  • 规划
  • java
  • 面试
  • 源码
  • 架构
  • Hadoop
  • HTTP
  • TCP
  • 学习笔记
  • IDEA
  • maven
  • idea
  • Java
  • jdk
  • 面经
  • linux
  • 爱情
  • mysql
  • 性能
  • sql
  • Mysql
  • JAVA
  • 技术
  • Redis
  • MQ
  • Spring
  • 数据库
  • TIDB
  • spring
  • unity
  • chatgpt
  • 经验分享
  • 前端
  • redis
  • vue
  • git
  • shadowsocks
  • hexo
  • blog
  • bug
  • 开发
  • 业务
  • jvm
  • 算法
  • MySQL
  • nginx
  • Linux
  • mq
  • db
  • springCloud
  • ssh
  • python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 性格
  • 音乐
  • 程序员
  • 随笔
  • mybatis
  • 演讲
  • 域名
  • 猫咪
  • 她
  • github
  • 计划
  • 旅游
  • 软件
  • 心理
  • 情商
  • 幽默
  • 才艺
  • 穿搭
  • 编程
  • 排序
  • 查找
  • 缓存
  • 网络
  • 设计模式
  • c
  • 课程设计
  • centos
  • 数学
  • 本网站主题yilia设计者的主页
如果有问题或者想讨论的可以联系[email protected]或者[email protected]