[MySQL系列] SELECT STRAIGHT_JOIN优化join查询技巧
2023-02-18 15:36:31 时间
在优化join查询的过程中
需要理解MySQL对多表连接的处理方式,首先MySQL优化器要确定以谁为驱动表,也就是说以哪个表为基准,在处理此类问题时,MySQL优化器采用了简单粗暴的解决方法:哪个表的结果集小,就以哪个表为驱动表,当然MySQL优化器实际的处理方式会复杂许多。
MySQL优化器选择小表作为驱动表,但是当我们的排序字段是在大表里,于是乎不可避免的出现了「Using filesort」,「Using temporary」
这样效率会慢很多
当使用inner join时,我们可以使用 SELECT STRAIGHT_JOIN xxx字段,xxxx字段 ,来强制使用左边的表作为主表,这样就能应用到索引了
默认速度很慢,是这样的
相关文章
- IDEA Plugin,写一个看股票指数和K线的插件
- 12种 vo2dto 方法,就 BeanUtils.copyProperties 压测最拉胯!【快双11了,别用错喽】
- 以一己之力,生抗美团技术博客!
- 谁说明天上线,这货压根不知道开发流程!
- 2020总结 | 作为技术号主的一年!
- 阿里不允许使用 Executors 创建线程池!那怎么使用,怎么监控?
- 手写线程池,对照学习ThreadPoolExecutor线程池实现原理!
- 数据源太多,报表工具该如何兼容?
- 如何集成开源图表及报表到自研项目中
- 数据批处理速度慢?不妨试试这个
- etcd v3版本生产级集群搭建以及实现一键启动脚本
- 长篇图解etcd核心应用场景及编码实战
- [PostgreSql]生产级别数据库安装要考虑哪些问题?
- 用了这跨操作系统远控软件,我再也不出差了
- spring接口多实现类,该依赖注入哪一个?
- 延时任务-基于redis zset的完整实现
- 延时任务-基于netty时间轮算法实现
- 完整实现-通过DelayQueue实现延时任务
- 数据分表Mybatis Plus动态表名最优方案的探索
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务