当前位置:网站首页>有文章说明或者证明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:
边栏推荐
猜你喜欢
PHP 变量注释/**@var*/
书单 | “推荐系统” 值得一读的五本书
VIT transformer详解
16 张图解 | 淘宝 10年架构演进
使用mysql:5.6和 owncloud 镜像,构建一个个人网盘
商业智能BI行业分析思维框架:铅酸蓄电池行业(一)
IMX6ULL—汇编LED灯
Paper sharing: "FED BN" uses the LOCAL BATCH NORMALIZATION method to solve the Non-iid problem
ThreadLocal 夺命 11 连问,万字长文深度解析
[免费专栏] Android安全之Android Studion 动态调试APK的两种方法
随机推荐
电商项目架构图
[免费专栏] Android安全之Android工程模式
使用.NET简单实现一个Redis的高性能克隆版(四、五)
LeetCode笔记:Biweekly Contest 84
混动产品助力,自主SUV市场格局迎来新篇章
国产抗新冠口服药每瓶不超300元/ 我国IPv6网络全面建成/ 谷歌入局折叠屏手机...今日更多新鲜事在此...
Cortex-A7 MPCore Architecture
[免费专栏] Android安全之Android Fragment注入
How to play with container local storage through open-local? | Dragon Lizard Technology
宝塔面板安装使用
正则表达式(全)
释放数据价值的真正法宝,数据要素市场化开发迫在眉睫
MySQL数据指令
fastdfs-client使用
书单 | “推荐系统” 值得一读的五本书
C的一些琐碎
商业智能BI行业分析思维框架:铅酸蓄电池行业(一)
什么是ROS
Go-Excelize API源码阅读(五)—— Close()
毕昇编译器优化:Lazy Code Motion