salve. mi farebbe piacere fare chiarimento su questa cosa che mi lascia un pochino perplessa.
ora mi direte : vai e leggiti le guide prima di sparare a vanvera. bhè, ho letto un bel pò di materiale a riguardo, ma non ho trovato nulla che chiarisse la mia perplessità.

allora, prima di porre la questione, vediamo se ho capito l'atomicità :

ammettiamo che io invi una richiesta a una pagina php che fà un'operazione di select, o insert, o update, o delete all'interno di una tabella; mysql imposta il lock su TUTTA LA TABELLA (quindi tutti i records della tabella) finchè l'operazione in corso non è finita (per un read- insert/delete/update per esempio, non per un read-read).

es. user1 fà un select * in una tabella di 2000 records. se mentre l'operazione è in corso arriva l'user2 che vuole fare una delete o un update o un insert sulla stessa tabella, verrà bloccato finchè tutti i 2000 records non sono stati letti. se invece user2 vuol fare una semplice read accederà senza problemi. esatto?

ora, la questione è questa : mysql può effettuare due query contemporaneamente giusto? (cioè, nello stesso instante può iniziare due query?);

perchè secondo il protocollo tcp questo sarebbe da escludere (i dati vengono gestiti "sequenzialmente", non possono arrivare due connessioni "nello stesso preciso istante"), però oggigiorno con i sistemi multiprocessore questo potrebbe avvenire...

es. supponiamo che il pc prenda all'istante 1 e 2 le due connessioni tcp, e vengano gestite direttamente dalla cpu1 e cpu2. per vari motivi/sfortuna (ma che può accadere) le due cpu inviano contemporaneamente la richiesta di query al database (allo stesso istante, sulla stessa tabella). è quì che mi sorgono i dubbi. con una configurazione del genere avrei dei grossi problemi.

ammeno che non ci siano dei meccanismi mysql che prevedono anche questo scenario
spero di essere stato chiaro! grazie per chi vorrà fare luce su questa storia.

cordiali saluti