2010-08-13 17 views
0

Cela peut être une question stupide avec une réponse évidente, mais je l'ai réfléchi pendant un certain temps et je ne peux pas vraiment trouver une bonne réponse par moi-même.Le fait d'avoir x nombre de requêtes UPDATE dans une transaction MySQL serait-il pire ou à peu près identique à celui de les mettre dans une requête UPDATE?

Je travaille sur un site Web de télécommunications et j'ai créé un framework de mappeur et un constructeur de requêtes dont je suis plutôt fier. Le mappeur a une fonction set (génère une requête UPDATE) pour mettre à jour chaque colonne. Un inconvénient de cette méthode est que je ne peux pas envelopper plusieurs mises à jour dans une seule bonne requête, chaque mise à jour a sa propre requête. En ce moment, j'ai l'option disponible pour démarrer et valider une transaction intégrée dans les classes de mappeur.

L'utilisation de transactions serait-elle moins imposante sur le serveur de base de données que sur chaque requête individuellement? Je sais le faire comme une requête serait probablement encore mieux ...

(Si ce n'était pas si clair que cela, laissez-moi savoir, je serai heureux de reformulez..)

- Logan

Répondre

1

L'exécution d'une seule requête est toujours plus rapide que l'exécution de plusieurs requêtes. Et en ce qui concerne les transactions, tous les moteurs de table ne prennent pas en charge les transactions, vous devez donc également y jeter un coup d'œil. Et même si vous envoyez plusieurs mises à jour au sein d'une transaction, il va de nouveau avoir une surcharge par rapport à une seule requête. De plus, dans la mesure du possible, c'est toujours un bon choix pour faire une seule requête (MySQL optimise généralement votre requête en appliquant divers algorithmes d'optimisation).

+0

Merci. C'est ce que je pensais que la réponse serait ... Je vais probablement passer à travers les étapes de refactoring et de le réparer. –