問題: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個線程來查詢,應該也就是一個線程串行執行吧。數據庫
解決:業務要想快,維護一個鏈接池,發兩個鏈接到服務端,客戶端再去作聚合。網絡