MySQL ROLLBACK konkurens műveleteknél?

Azzal a problémával futottam össze, hogy webes környezetben 1 DBuser alatt fut minden felhasználó adatbázis művelete.
Ez önmagában még nem jelent gondot, viszont ha van egy műveletsorom amit egy menet közbeni megszakadás miatt rollbackelnem kellene, egy másik (webes)user konkurrens műveletének commitja miatt ezt már nem tudom megtenni.

A műveletsort nem tudom pl tárolt eljárásként egységbe szervezni, mert tömböt, pláne többdimenziósat a mysql nem tud inputként bevenni, a workaround(egybefűzöm, majd a SP-n belül szétbontom a delimiter jelek mentén) meg egy méret felett már nem megoldható. Szóval kénytelen vagyok a tömböt az sql-en kívül bejárni, az pedig iterációhoz vezet.

Van-e valamilyen ötletetek a szituációra, ami nem jár a tábla lockolásával(ami a konkurens juzerek munkáját blokkolja), illetve nem vezet be minden webes usernek egy DBusert (ami megszívatja az adminisztrációt)?

Előre is köszönöm!

Hozzászólások

Először is: milyen engine-t használsz?
Mert az innodb azt hiszem row szintű lock-olást csinál