Ca existe la notion de transaction en Mysql ?


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11994
Inscription: 1 Mar 2005

Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 20:04

Bon Mysql c'est Rank0.5 donc faut me causer avec des mots simples :wink:

Question : est ce que la notion de transaction (ou controll on/off dans d'autres langages) existe en Mysql.

Z'explique : J'ai une serie d'opérations à faire (par exemple modifier 3 fiches) et je ne veux pas qu'un autre utilisateur intervienne durant le laps de temps ou je bosse sur ces 3 fiches, me semant un joyeux boxon ... Bien evidemment, le travail "dans transaction" sur ces 3 fiches est limité au strict minimum (tout ets préparé en amont) et donc ca durera un pouieme de pouieme de seconde mais le risque existe quand même ... surtout si 3 devient 6 10 ou 20 ...

Donc y a t il une commande mysql pour lui dire :

MODE la tu bosse que pour moi
action1
action2
action 3
MODE je refile la ressource aux copains

Bref je veux avoir l'assurance que mes 3 actions se feront à la suite sans qu'une autre action soit executée par un autre user ...

PS : Mes 3 actions ne concernent qu'un table et donc je peux limiter mon mode "tout pour moi" à la table concernée ... Ca existe ce genre biniou en Mysql ?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 20:21



Zecat
WRInaute accro
WRInaute accro
 
Messages: 11994
Inscription: 1 Mar 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 20:48

Parfait ... la même en french serait un must :wink:


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 20:49

Euh... c'est en français Zecat :lol:


bgdc
WRInaute impliqué
WRInaute impliqué
 
Messages: 723
Inscription: 23 Mai 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 21:04

Je crois que tu peux aussi "locker" la table pendant que tu bosses dessus :
http://dev.mysql.com/doc/refman/5.0/fr/lock-tables.html


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11994
Inscription: 1 Mar 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 21:24

UsagiYojimbo a écrit:Euh... c'est en français Zecat :lol:

c'est quoi ce bins ? :mrgreen: Tu as édité ton lien ? Tout à l'heure je suis arrivé sur unepage en british :roll: ou alors j'ai fumé une très très mauvaise qualité :mrgreen:

EDit : explication ... en fait tout a l'heure, j'étais a la bourre (on m'appelait) et du coup j'ai juste jeté un oeil sur le titre et vu surement en diagonal l exemple en anglais puis j'ai fermé la page ... :roll: :roll:
Dernière édition par Zecat le Lun Avr 18, 2011 21:34, édité 2 fois.


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11994
Inscription: 1 Mar 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Lun Avr 18, 2011 21:31

bgdc a écrit:Je crois que tu peux aussi "locker" la table pendant que tu bosses dessus :
http://dev.mysql.com/doc/refman/5.0/fr/lock-tables.html

Oui ca me semble encore plus adapté à mon cas ... c'est marrant parce que l'on retrouve le meme "contexte accélérateur" que dans les gestion de transaction sur d'autres langages (pour des raisons similaires). Bon ne pas en abuser ... :wink:

Dolph
WRInaute impliqué
WRInaute impliqué
 
Messages: 631
Inscription: 1 Mar 2011

Re: Ca existe la notion de transaction en Mysql ?

Message le Mar Avr 19, 2011 5:46

Zecat a écrit:Bref je veux avoir l'assurance que mes 3 actions se feront à la suite sans qu'une autre action soit executée par un autre user ...

Dons, faut aussi gérer un cache temporaire si ces users peuvent enregistrer des données dans tes tables.
Parce que si tu lock les table lorsqu'un select arrive, c'est pas bien grave. Si c'est un insert, le user risque de faire la tronche en voyant que ce qu'il a fait est perdu.


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: Ca existe la notion de transaction en Mysql ?

Message le Mar Avr 19, 2011 8:17

Dolph a écrit:
Zecat a écrit:Bref je veux avoir l'assurance que mes 3 actions se feront à la suite sans qu'une autre action soit executée par un autre user ...

Dons, faut aussi gérer un cache temporaire si ces users peuvent enregistrer des données dans tes tables.
Parce que si tu lock les table lorsqu'un select arrive, c'est pas bien grave. Si c'est un insert, le user risque de faire la tronche en voyant que ce qu'il a fait est perdu.


Pas du tout.
Un lock met en attente les autres requêtes mais ne les annule certainement pas, ce serait débile.

Le risque est de se retrouver avec un blocage trop long. Si les users attendent tous derrière …


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11994
Inscription: 1 Mar 2005

Re: Ca existe la notion de transaction en Mysql ?

Message le Mar Avr 19, 2011 8:25

Oui c'est le principe meme des transactions ... telle que je les ai pratiquées depuis des années :wink:

1 - ca verrouille le temps de finir un lot de travail
2 - ca accélère puisque dans ce contexte le systeme fait l impasse sur des vérif inutiles (puisque justement en transaction)
3 - Faut optimiser pour ne laisser "en transaction" que le minimum syndical en préparant avant tout ce qui peut l'etre
4 - faut pas en abuser sinon le coté "j'acélère" est annulé par le coté "je crée des blocages en file d'attente (de type FIFO)"

Voila ma lecture de la chose :wink:

Dolph
WRInaute impliqué
WRInaute impliqué
 
Messages: 631
Inscription: 1 Mar 2011

Re: Ca existe la notion de transaction en Mysql ?

Message le Mar Avr 19, 2011 9:30

Blount a écrit:Pas du tout.
Un lock met en attente les autres requêtes mais ne les annule certainement pas, ce serait débile.

Ok, savais pas.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Détection de pages dupliquées
    Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité