【沉浸式解决问题】Mysql中union连接的子查询是否并行执行

目录

一、问题描述

在MySQL中使用union连接子查询时突然想确认下是串行还是并行执行,做个实验测试下


二、场景还原

1. 测试sql

sql 复制代码
SELECT SLEEP(1)
UNION ALL
SELECT SLEEP(1)
UNION ALL
SELECT SLEEP(1)
UNION ALL
SELECT SLEEP(1)
UNION ALL
SELECT SLEEP(1)

运行结果

运行时间为5秒可以确定是串行了

union也是同样的


三、原因分析

MySQL 早期的设计是一个连接分配一个进程,这种单线程模型在处理 UNION 查询时,自然就会按串行方式执行子查询,一个子查询完成后,再执行下一个子查询


四、解决方案

在实际中,我们还是希望能快一点,毕竟有时候需要连接的子查询过多的话,时间无法接受,那只能在代码中通过多线程并发进行查询,然后在内存中进行连接。


喜欢的点个关注吧><!祝你永无bug!

txt 复制代码
/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
相关推荐
CookieCrusher3 小时前
数据泄露危机逼近:五款电脑加密软件为企业筑起安全防线
运维·数据库·windows·安全·文件加密·数据防泄漏·dlp
这周也會开心4 小时前
SQL-窗口函数
数据库·sql
TDengine (老段)6 小时前
TDengine 时间函数 WEEKDAY() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)6 小时前
从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
数据库·数据仓库·人工智能·物联网·时序数据库·etl·tdengine
LQ深蹲不写BUG8 小时前
MySql的事务机制
数据库·mysql
逼子格9 小时前
【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
数据库·单片机·嵌入式硬件·51单片机·proteus·定时器·硬件工程师
stein_java10 小时前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh66611 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman11 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim