20-03-2013, 09:42 AM
En RAM ou en pas RAM, ce sera alors pareil, les effets seront cumulés aussi.
En RAM, l'équivalent de sélect, c'est une ligne de type
Le select serait
Le update
En BDD, tu as le problème de collision si tu fais:
En RAM, tu auras exactement le même problème si tu fais
Pour ne pas avoir ce soucis, en RAM, il te faudra faire des opérations atomiques:
Ce qui revient au même que faire une opération atomique en BDD.
Le seul avantage de la RAM, c'est que les calculs sont plus rapides, donc tu vas réduire les risques de collision, mais pas supprimer ce risque. C'zest ennuyeux de faire attendre les autres scripts par exclusion mutuelle, c'est vrai, mais c'est la seule solution fiable.
En RAM, l'équivalent de sélect, c'est une ligne de type
Code :
$objet->getvaleur()
Code :
$objet->setvaleur(...)
Code :
$objet.valeur+=tru
En BDD, tu as le problème de collision si tu fais:
Code :
SELECT ...
<actions sur la valeur sélectionnée>
UPDATE...
En RAM, tu auras exactement le même problème si tu fais
Code :
var $valeur=$objet.getValeur();
<actions sur la valeur>
$objet.setvaleur($resultat);
Pour ne pas avoir ce soucis, en RAM, il te faudra faire des opérations atomiques:
Code :
$objet.valeur+=50; ///Ca, ok
Ce qui revient au même que faire une opération atomique en BDD.
Le seul avantage de la RAM, c'est que les calculs sont plus rapides, donc tu vas réduire les risques de collision, mais pas supprimer ce risque. C'zest ennuyeux de faire attendre les autres scripts par exclusion mutuelle, c'est vrai, mais c'est la seule solution fiable.