Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Foreach-Schleife:Verwenden aller Kerne in R (insbesondere wenn wir SQL-Abfragen innerhalb der Foreach-Schleife senden)

Mein Vorschlag ist folgender:Verschieben Sie die Datenbankabfragen aus der Schleife und sperren Sie den Zugriff, damit Sie keine parallelen Datenbankabfragen durchführen. Ich denke, das wird die Dinge auch beschleunigen, da Sie keinen parallelen Festplattenzugriff haben, während Sie immer noch parallele Verarbeitung durchführen können.

Bedeutung (Pseudocode)db =mit Datenbank verbindenthreadlock =lock();

parfor {threadlock.lockresult =db query (hier alle Daten abrufen, da Sie während des Ladevorgangs nicht verarbeiten können, ohne die Datenbank gesperrt zu halten)thread.unlockprocess resultierende Daten (die jetzt nur noch Daten und kein SQL-Objekt sind).}