Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Curiosità sulle Transazioni

    ciao a tutti, volevo chiedervi come viene gestita una transazione in MySQL e cosa succede agli utenti che provano a collegarsi al server.

    codice:
    1. BEGIN 
    2. SELECT... 
    3. UPDATE... 
    4. COMMIT
    se un thread lancia un "BEGIN" agli altri che succede ? potranno continuare ad accedere alle tabelle ? in caso contrario quando potranno ?

    in ogni istante ci può essere una sola transazione immagino...quelle che non vengono accettate come si gestiscono ? (deve farlo il programmatore lato PHP o ci pensa MySQL ?)

    grazie e tutti
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

  2. #2
    I server http in generale, creano una sessione di lavoro univoca per ogni client connesso.
    Questo significa che, tramite php, anche centinaia di utenti contemporaneamente possono manipolare uno stesso record senza interferire tra loro.

    Non so se era questo il tuo dubbio...

  3. #3
    quello che mi interessava sapere, forse mi sono espresso male, è se nell'istante in cui un thread inizia una transazione "BEGIN" altri thread possono fare lo stesso ?...perchè in questo caso si potrebbero creare inconsistenzte sui dati.

    codice:
    thread 1.          thread 2.
    BEGIN              BEGIN
    SELECT             SELECT 
    UPDATE             UPDATE
    SELECT             SELECT 
    COMMIT             COMMIT
    può succedere che se il thread 2 esegue prima la commit vada a modificare i dati quindi "incasinare", esempio l'ultima select di thread 1 ?

    spero di essermi spiegato
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

  4. #4
    Hai fatto una bella domanda.
    Non ci metto la mano sul fuoco, però secondo me, sì, può succedere che al momento del Commit, ti incasini i dati dell'altro thread, perchè non viene effettuato alcun Lock.

  5. #5

  6. #6
    quindi se entro in una sezione critica mi conviene lockare le tabelle che mi servono mettendo in attesa gli altri thread, una volta finito l'insieme di query con la commit rilascio le tabelle con la UNLOCK giusto ?

    da quuì un'altra domanda:
    Mentre le tabelle sono lockate ai thread che aspettano che succede ? che valore di ritorno mi darà MySQL o semplicemente lui mette in attesa le query entranti su quelle tabelle fino al timeout ?

    grazie
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

  7. #7
    scusatemi ma "up"
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

  8. #8
    Originariamente inviato da sebaz
    quindi se entro in una sezione critica mi conviene lockare le tabelle che mi servono mettendo in attesa gli altri thread, una volta finito l'insieme di query con la commit rilascio le tabelle con la UNLOCK giusto ?

    da quuì un'altra domanda:
    Mentre le tabelle sono lockate ai thread che aspettano che succede ? che valore di ritorno mi darà MySQL o semplicemente lui mette in attesa le query entranti su quelle tabelle fino al timeout ?

    grazie
    la seconda che hai detto

  9. #9
    ottimo grazie mille !!!
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

  10. #10
    cmq questo è un sitema che funziona per garantire l'atomicità sulle transazioni e la consistenza dei dati no ?

    1. LOCK TABLES
    2. START TRANSACTION (BEGIN)
    3. query .....
    4. ROLLBACK / COMMIT se tutto è andato bene
    5. UNLOCK TABLES

    anche se le tabelle sono InnoDB mi conviene fare la Lock ?

    :master:
    www.funkazzisti.it - The Real Venetian Funky Style
    www.feempandora.it - Progetto di Ricerca sullo sviluppo sostenibile
    www.e-makina.it - Web Design

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.