Locking delle tabelle in MySQL

23 dicembre 2008

Casi di utilizzo dell’External Locking

L’External Locking è una procedura che viene utilizzata quando non può essere utilizzato un singolo processo (ad esempio quello prodotto da MySQL) che richieda l’accesso alle tabelle; fondamentalmente si hanno due casi in cui può essere conveniente ricorrere all’External Locking:

  • la dove si utilizzano simultaneamente più server per l’accesso alla stessa database directory; ciascun server dovrà aver abilitata una procedura di External Locking, si tratta però di una configurazione non consigliata;
  • quando si utilizza il comando “myisamchk”per le operazioni di manutenzione delle tabelle di tipo MyISAM.

Quando è in funzione un locking esterno, ad ogni processo che richiede l’accesso ai dati è associato un blocco a livello di filesystem relativamente ai file della tabella interessata; nel caso in cui non siano disponibili tutti i blocchi necessari, l’accesso verrà impedito fino a quando la disponibilità dei Lock non sarà completa.

Le procedure di External Locking hanno lo svantaggio di ridurre in alcuni casi le prestazioni generali de DBMS in quanto questo è spesso vincolato all’attesa dell’esecuzione di altri processi prima di poter accedere alle tabelle.

In generale è possibile affermare che l’External Locking non è necessario nel caso in cui sia in esecuzione un singolo server per l’accesso ai dati e nel caso in cui non vi siano altre applicazioni che necessitano di apportare modifiche alle tabelle mentre il DBMS risponde alle chiamate degli utilizzatori. Nello stesso modo non è necessario l’External Locking per la lettura dei records in tabella tramite l’utilizzo di programmi esterni.

L’uso dell’External Locking può essere controllato al memento dell’avvio del Database Server utilizzando gli argomenti --external-locking o --skip-external-locking option disponibili a partire dalla versione 4.0.3 di MySQL.

Conclusioni

Il locking delle tabelle è uno strumento messo a disposizione da MySQL per la soluzione delle problematiche che possono derivare dall’utilizzo concorrente da parte di più processi della stessa struttura di dati. In questa breve trattazione sono state descritte le diverse procedure disponibili per il locking delle tabelle ponendo particolare attenzione ai casi in cui esse devono essere impiegate e a quelli in cui esse sono inutili o addirittura svantaggiose. Per maggiori informazioni, è possibile consultare la sezione dedicata alle procedure di locking delle tabelle pubblicata sul manuale ufficiale di MySQL.

Se vuoi aggiornamenti su Locking delle tabelle in MySQL inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Locking delle tabelle in MySQL

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento dei dati per attività di marketing