Ho un singolo server di database con 4 core e un server Web con PHP. Voglio che uno script PHP sia in grado di inviare query al server di database in modo che vengano eseguite in parallelo sul server del database, una su ciascun processo mysqld. In genere in PHP si esegue questa operazione:È possibile che PHP esegua query mysql multielaborate in un ambiente Apache?
$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'");
Ma questi esegue in modo seriale e utilizzare un solo processo mysqld. In questa applicazione, ogni query (da A a D) sta elaborando una parte diversa dei dati, ma sta lavorando sullo stesso set di tabelle InnoDB.
Una possibile soluzione è quella di rendere AJAX chiamate a Apache per una scomposizione in sotto-script che potrebbe corsa in parallelo, ma sto cercando di indovinare che Apache elaborerà quelle chiamate AJAX in sequenza con un processo httpd per cliente.
C'è un modo per raggiungere questo obiettivo? Qualcuno ha esperienza con le funzionalità mysqlnd MYSQLI_ASYNC? Possono funzionare in parallelo con un singolo server di database e una connessione mysqli?
Scopo: eseguiamo strumenti di analisi in tempo reale che generano grafici e mi piacerebbe sfruttare la potenza di elaborazione sul nostro database per accelerare le query che richiedono tempo.
L'ho suggerito anche nella mia domanda, ma sei sicuro che funzioni quando usi una singola connessione? Non richiede più connessioni a due o più server diversi? – Toxikman
Sì, richiede più connessioni, una per ogni query. Ho aggiunto un collegamento ai documenti 'mysqli_poll()' che hanno un esempio. – Crack