当前位置:网站首页>有文章说明或者证明MYSQL 嵌套子查询不足之处吗?
有文章说明或者证明MYSQL 嵌套子查询不足之处吗?
2022-08-09 18:07:00 【大明_数据库_指挥使】
请问一下MySQL 5.7和MySQL 8.0 多级嵌套子查询能力怎么样
select xxx,sum(yyyy) from merchant_info sm LEFT JOIN merchant_report mr on mr.merchant_id=sm.merchant_idLEFT JOIN ( SELECT ss.salesman_id,ss.salesman_name,sa.salesman_name AS 'salesSupervisorName' FROM( SELECT sm.salesman_id,sm.salesman_name,sa.sales_id AS 'salesSupervisorNo' FROM( SELECT sm.salesman_id,sm.salesman_name,op.parent_id FROM sales_man sm LEFT JOIN sales_parent op ON sm.salesman_id=op.sales_id )sm LEFT JOIN sales_operator sa ON sm.parent_id=sa.id )ss LEFT JOIN sales_man sa ON ss.`salesSupervisorNo`=sa.salesman_id ) ss ON sm.salesman_id=ss.salesman_id where 1=1 and mr.sales_ID IN ( '1' , '2' , '3' )
其中 嵌套进去的子查询,目标是形成 销售姓名,销售领导ID,销售员ID,销售员姓名
当心嵌套子查询的执行计划是否稳定, 因为这个嵌套子查询要应用到多个大表的查询里面去.
虽然MYSQL 规范 JION不要超过3张表, 使用阿里云的RDS FOR MYSQL 感觉没有什么特别慢的地方
采纳答案1:
mysql子查询最大的不足,就是优化器没有做进一步的优化,比如没有考虑子查询外部的WHERE条件,而是直接根据SQL的写法生成临时表,当子查询数据量大时造成性能问题。
对于这个SQL,在生产环境explain看下执行计划,就知道RDS for mysql是否做了优化。
至于是否稳定:mysql优化器会根据成本计算选择一个“最优”的执行计划,大部分情况下它的选择都没有问题。
其他答案1:
mysql子查询最大的不足,就是优化器没有做进一步的优化,比如没有考虑子查询外部的WHERE条件,而是直接根据SQL的写法生成临时表,当子查询数据量大时造成性能问题。
对于这个SQL,在生产环境explain看下执行计划,就知道RDS for mysql是否做了优化。
至于是否稳定:mysql优化器会根据成本计算选择一个“最优”的执行计划,大部分情况下它的选择都没有问题。
其他答案2:
从上面的语句来看。 8.x版本多半使用了派生表合并。
你可以执行show warnings来看看
其他答案3:
谢谢
其他答案4:
边栏推荐
猜你喜欢
ARM Assembly Basics
How to stop the test after reaching a given number of errors during stress testing in JMeter
ARM 汇编基础
基于AWS构建云上数仓第一步:云平台的基础概念
开源一夏 | 基于若依架构的列表详情展示
三星旗舰优惠千八,苹果优惠过千,国产旗舰只降五百打发叫花子
Uniapp 应用未读角标插件 Ba-Shortcut-Badge
字节二面,差点倒在了MySQL上面
What is the Treasure Project (TPC), a dark horse with wings in 2022!
ThreadLocal 夺命 11 连问,万字长文深度解析
随机推荐
线性代数学习笔记
单调栈
MySQL数据指令
第三方bean使用ConfigurationProperties注解获取yml配置文件数据 & 获取yml配置文件数据的校验
[免费专栏] Android安全之Android工程模式
Sublime Text如何安装Package Control
d中shared用法
d中简单禁止垃集
Unix domain socket
ceph 创建池和制作块设备基操
Ng DevUI 周下载量突破1000啦!
Start cleaning up the long-term divers in the electronic chart development group again
IMX6ULL—Assembly LED Lights
[免费专栏] Android安全之和平精英(FZ)APK逆向分析
[免费专栏] Android安全之Android Studion 动态调试APK的两种方法
目录
uniapp 实现底部导航栏tabbar
基于AWS构建云上数仓第一步:云平台的基础概念
How to play with container local storage through open-local? | Dragon Lizard Technology
URLError: <urlopen error [Errno 11004] getaddrinfo failed>调用seaborn-data无法使用