Il parait que Oracle est plus véloce que MySQL, et que son optimzeur est plus aboutit. Je ne sais pas si c'est vrai. j'ai aussi déjà entendu que "ouais, MariaDB/PostGre c'est carrément mieux, prends ça", je ne suis pas sûr que ce soit vrai...
Sinon, petit test sur un mutualisé OVH: 65k populations, moins d'1s (genre 800ms, bon, c'est mesuré au pif, mais c'est l'ordre de grandeur). Quoi qu'il en soit, tu ne feras jamais mieux en sortant les données pour les traiter dans le PHP.
ECLERD v0 est fait comme cela (sortir les infos de la BDD, calculer en PHP, mettre à jour), conséquence: 5 minutes de temps de calcul total pour simuler l'avancement du temps sur la planète. Que j'ai donc découpé par batch, lancé au hasard (d'où le fait que certaines pages prennent 10 secondes). J'ai fait quelques essais en local avec l'autre approche (procédures stockées), et je tombe à 3-4 secondes (en gros, car je n'ai pas repris toutes les règles du jeu). Sachant qu'en local sur cette nouvelle mouture, j'ai 100x plus de cases dans la carte.
& pour rappel, quand je dis "65k populations", c'est "65k mises à jour". Si tu te limites uniquement au joueur qui visite la page, ce sera instantané. Avec un CRON régulier si besoin (t'en n'auras sûrement pas besoin mais bon).
Sinon, petit test sur un mutualisé OVH: 65k populations, moins d'1s (genre 800ms, bon, c'est mesuré au pif, mais c'est l'ordre de grandeur). Quoi qu'il en soit, tu ne feras jamais mieux en sortant les données pour les traiter dans le PHP.
ECLERD v0 est fait comme cela (sortir les infos de la BDD, calculer en PHP, mettre à jour), conséquence: 5 minutes de temps de calcul total pour simuler l'avancement du temps sur la planète. Que j'ai donc découpé par batch, lancé au hasard (d'où le fait que certaines pages prennent 10 secondes). J'ai fait quelques essais en local avec l'autre approche (procédures stockées), et je tombe à 3-4 secondes (en gros, car je n'ai pas repris toutes les règles du jeu). Sachant qu'en local sur cette nouvelle mouture, j'ai 100x plus de cases dans la carte.
& pour rappel, quand je dis "65k populations", c'est "65k mises à jour". Si tu te limites uniquement au joueur qui visite la page, ce sera instantané. Avec un CRON régulier si besoin (t'en n'auras sûrement pas besoin mais bon).