28-03-2017, 05:34 PM
(28-03-2017, 04:24 PM)Xenos a écrit : Non, tout dépend de la taille du buffer du serveur (et donc, de sa RAM). MySQL gère très bien les gros UPDATE de l'ordre du million de lignes, si on ne rate pas les index et qu'on lui fourni la RAM nécessaire.
Oula, qu'est-ce qui te fait affirmer ça ???
Quand on bosse sur des volumes en millions en général on n'utilise plus trop MySQL (ou au moins on se pose la question) mais là je pense qu'il y a des contraintes économiques puisqu'on est souvent dans des jeux amateurs ici. Du coup le volume mémoire (RAM) pour charger ne serait-ce que 1 million de données en mémoire (parce que c'est ce que fait ta méthode du INSERT) a intérêt à être conséquent pour ne pas pénaliser le reste de l'application et du coup cela reviendrait cher pour un jeu amateur.
L'indexation (dont il faudra aussi prévoir le stockage d'ailleurs) n'intervient qu'au niveau de l'update puisque tu fais une lecture full de la table et un insert derrière donc ce n'est pas ça qui va réduire le temps de traitement. Mais, même là, il faut un update full donc l'index n'optimise que la jointure (ça durerait des jours sans cet index à cause du produit cartésien).
@Metallique : d'ailleurs ça me fait penser que si tu as la possibilité de découper ton traitement pour ne pas exécuter tous les joueurs au même moment, ça peut peut-être être pas mal car tu seras confronté au temps d'écriture disque aussi sur les volumes que tu vas atteindre.
Keltaïnen