Mysql
 sql >> Base de données >  >> RDS >> Mysql

boucle foreach :Utilisation de tous les cœurs dans R (surtout si nous envoyons des requêtes sql à l'intérieur de la boucle foreach)

Ma suggestion est la suivante :déplacez les requêtes de base de données en dehors de la boucle et verrouillez l'accès afin de ne pas effectuer de requêtes de base de données parallèles. Je pense que cela accélérera également les choses, car vous n'aurez pas d'accès parallèle au disque, tout en pouvant effectuer un traitement parallèle.

Signification (pseudo-code)db =connect to databasethreadlock =lock();

parfor {threadlock.lockresult =db query (tirez toutes les données ici, car vous ne pouvez pas traiter pendant que vous chargez sans garder la base de données verrouillée)thread.unlocktraitez les données résultantes (qui ne sont plus que des données et non un objet SQL). }