Mysql
 sql >> Database >  >> RDS >> Mysql

foreach loop:utilizzo di tutti i core in R (soprattutto se stiamo inviando query sql all'interno di foreach loop)

Il mio suggerimento è questo:sposta le query del database al di fuori del ciclo e blocca l'accesso in modo da non eseguire query sul database parallelo. Penso che ciò accelererà anche le cose, poiché non avrai accesso al disco parallelo, pur essendo in grado di eseguire l'elaborazione parallela.

Significato (pseudo codice)db =connetti a databasethreadlock =lock();

parfor {threadlock.lockresult =db query (tira tutti i dati qui, poiché non puoi elaborare mentre carichi senza mantenere bloccato il database) thread.unlockprocess i dati risultanti (che ora sono solo dati e non un oggetto sql).}