我有一個具有4個內核的單個數據庫服務器和一個運行PHP的Web服務器。我希望一個PHP腳本能夠向數據庫服務器發出查詢,以便它們在數據庫服務器上並行執行,每個mysqld進程上一個。通常在PHP中,你這樣做:PHP可以在Apache環境中發出多重處理的mysql查詢嗎?
$sql = new mysqli([insert connection parameters]);
$sql->query("SELECT 'Complex Query A'");
$sql->query("SELECT 'Complex Query B'");
$sql->query("SELECT 'Complex Query C'");
$sql->query("SELECT 'Complex Query D'");
但是,這些連續運行,只使用一個mysqld進程。在這個應用程序中,每個查詢(A到D)正在處理數據的不同部分,但是處理同一組InnoDB表。
一個可能的解決方案是讓AJAX調用Apache將它分解爲子腳本威力並行運行,但我猜Apache會處理這些Ajax調用順序與每個客戶端一個httpd進程。
有沒有辦法做到這一點?有沒有人有與mysqlnd MYSQLI_ASYNC功能的經驗?它們可以與單個數據庫服務器和mysqli連接並行工作嗎?
目的:我們運行生成圖形的實時分析工具,並且希望利用數據庫的處理能力來加快需要時間的查詢。
我建議,以及在我的問題,但你確定這在使用單個連接時有效嗎?這不需要多個連接到兩個或更多不同的服務器? – Toxikman
是的,它需要多個連接 - 每個查詢一個連接。我添加了一個鏈接到'mysqli_poll()'文檔,它有一個例子。 – Crack