在「MySQL 5.7.12 – Part 2: Improving the MySQL Protocol」這邊看到介紹 MySQL 的 Asynchronous API,藉由 pipeline 加速查詢。
本來的:
res_1 = conn.query("DO 1"); res_2 = conn.query("DO 2");
會產生這樣的 flow:
而 Asynchronous API 可以這樣寫,先把兩個 SQL query 都丟出去,然後等結果:
hndl_1 = conn.query_send("DO 1"); hndl_2 = conn.query_send("DO 2"); # wait for completion res_1 = conn.query_recv(hndl_1); res_2 = conn.query_recv(hndl_2);
也就是產生這樣的 flow: