【沉浸式解决问题】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
*/
相关推荐
-SGlow-13 分钟前
MySQL相关概念和易错知识点(3)(表内容的CURD、内置函数)
linux·运维·服务器·数据库·mysql
飞翔的佩奇16 分钟前
基于SpringBoot+MyBatis+MySQL+VUE实现的经方药食两用服务平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
数据库·vue.js·spring boot·mysql·毕业设计·mybatis·经方药食两用平台
bing_1581 小时前
在多租户或多服务共享 Redis 时,如何做逻辑隔离或权限控制?
数据库·redis·缓存
ChaITSimpleLove2 小时前
PostgreSQL 中删除指定数据库下的所有表结构
数据库·postgresql·bash·sql 脚本·.net npgsql
孫治AllenSun3 小时前
【Mysql】字段隐式转换对where条件和join关联条件的影响
数据库·mysql·oracle
生涯にわたる学び3 小时前
数据库02 网页html01 day44
数据库·html
Doris_LMS4 小时前
保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
java·mysql·postgresql
2301_793086874 小时前
Mysql group by
数据库·mysql
jllllyuz5 小时前
Spring中的事务是如何实现的
数据库·sql·spring
wangmengxxw5 小时前
Spring-常用注解
java·数据库·spring·注解