union的兩個子查詢是否並行

需求描述

問題:subquery 1 union subquery2,其中union左右的兩個子查詢是否並行。mysql

場景:業務中性能敏感的業務,但願能加快速度,若是數據庫能兩個子查詢並行執行,既能夠節省時間,還能夠節省網絡開銷sql

測試結果

mysql> select version();
+---------------+
| version()     |
+---------------+
| 5.7.21-21-log |
+---------------+
1 row in set (0.00 sec)

mysql> select sleep(2) union select sleep(5);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (7.01 sec)    -- 串行,妥了

分析:mysql是一個鏈接分配一個進程,這樣的一個SQL也不會分紅2個線程來查詢,應該也就是一個線程串行執行吧。數據庫

解決:業務要想快,維護一個鏈接池,發兩個鏈接到服務端,客戶端再去作聚合。網絡

相關文章
相關標籤/搜索