As instruções SQL são atômicas. Ou seja, se você executar algo assim:
UPDATE Cars SET Sold = Sold + 1
Ninguém pode alterar o
Sold
variável durante esta declaração. Ele sempre é incrementado em 1, mesmo se alguém estiver executando a mesma instrução simultaneamente. O problema ocorre se você tiver instruções que dependem umas das outras:
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
Entre essas consultas, outro usuário pode alterar a tabela Carros e atualizar Vendidos. Para evitar isso, envolva-o em uma transação:
BEGIN;
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
COMMIT;
As transações são suportadas pelo InnoDB, mas não pelo MyISAM.