Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287

    Differenza tra Lock Table e Transazioni

    Salve a tutti,

    Volevo chiedervi dei chiarimenti riguardo all'uso di transazioni e lock table diciamo facendo riferimento a MySQL.

    Se, io ho un accesso simultaneo ai dati, usando il lock table ho una certa garanzia.

    Poiche una volta acquisita la risorsa blocco la tabella , quindi la uso solo io e tutto ok.

    Ora, leggevo che appunto le transazioni sono un altro modo per gestire l'accesso simultaneo ai dati.

    Non capisco pero in che modo?

    Perche, io apro una transazione nella quale i dati sono validi solo al momento del commit.

    Ma, nel tipico esempio che, ho 10 unita di un prodotto, arrivano contemporaneamente 2 utenti, il primo chiede 3 unita il secondo 8 unita.

    Con i lock ho capito la logica e il perche' tutto funziona.

    Con le transazioni?

    Arriva il primo utente parte la transazione, contemporaneamente arriva il secondo cliente e parte la transazione... In che modo ho garanzia che l'esecuzione resti consistente?

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    Nessuno conosce l'argomento?

  4. #4

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    ciao e grazie per la risposta.

    Dunque leggendo da quella pillola mi sembra di capire che, anche usando le transazioni abbiamo il lock, solo che invece di averlo su tutta la tabella lo abbiamo solo sullo specifico record attualmente interessato dalla transazione.

    E' corretto?

  6. #6
    mah, la transazione serve a tutt'altro. serve ad assicurarti che tutta una serie di operazioni vengano commit-tate (salvate sul db) solo se tutte hanno successo; se una di queste operazioni non ha successo, si torna allo stato iniziale (rollback)

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    Quote Originariamente inviata da optime Visualizza il messaggio
    mah, la transazione serve a tutt'altro. serve ad assicurarti che tutta una serie di operazioni vengano commit-tate (salvate sul db) solo se tutte hanno successo; se una di queste operazioni non ha successo, si torna allo stato iniziale (rollback)
    ciao optime,
    sicuramente quello che tu dici e' corretto.

    Ma in MySQL, per gestire situazioni di accesso parallelo al db , usando tabelle InnoDB non si possono usare o meglio si sconsigliano i lock che andrebbero usati solo su MyISAM.
    Per questo conoscere come le transazioni gestiscono accessi multipli e' importante

  8. #8
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Quote Originariamente inviata da mydb Visualizza il messaggio
    ciao optime,
    sicuramente quello che tu dici e' corretto.

    Ma in MySQL, per gestire situazioni di accesso parallelo al db , usando tabelle InnoDB non si possono usare o meglio si sconsigliano i lock che andrebbero usati solo su MyISAM.
    Per questo conoscere come le transazioni gestiscono accessi multipli e' importante
    Qualche tempo fa ho chiesto aiuto sul forum, e qualche idea l'ho presa.
    In sostanza le transazioni hanno vari livelli di "rigidezza": in quello massimo (serializable) le transazioni vengono svolte una dopo l'altra, come se ci fosse un LOCK prima di ogni transazione.
    In questo modo sei sicuro al 100% che non appaiano righe fantasma, letture strane etc (trovi tutto quello che vuoi se cerchi ACID).

    Se invece "rilassi" le transazioni, ovvero le rendi passibili di problemi vari, allora vengono eseguite in parallelo.

    Insomma passi da un "tutte insieme sperando in bene" a "una dopo l'altra", tra i due estremi scegli a seconda dei casi.

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.