Locking Mechanisms
Row-level, locking, (InnoDB, ka, default) SIRF, SPECIFIC, rows, ko, LOCK, karta hai — MULTIPLE, transactions, SAME, table, ke, DIFFERENT, rows, PAR, PARALLEL, mein, KAAM, kar, sakte, HAIN. Table-level, locking, (MyISAM) POORI, table, ko, LOCK, karta hai — kam, concurrent.
Deadlock, TAB, HOTA, hai, jab, DO, transactions, EK, dusre, ke, locks, ka, WAIT, karte, HAIN — MySQL, AUTOMATICALLY, deadlocks, DETECT, karके, EK, transaction, ko, ROLLBACK, kar, deta hai.
-- Explicit row lock:
START TRANSACTION;
SELECT * FROM accounts WHERE id = 1 FOR UPDATE; -- row, LOCK, ho, jaati, hai
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
COMMIT; -- lock, release, ho, jaata, hai- Row-level locking (InnoDB) = specific rows, lock, hote, hain — MORE, concurrent
- Table-level, locking, (MyISAM) = poori, table, lock, hoti, hai
- Deadlocks, MySQL, automatically, detect, aur, resolve, karta, hai
Shared, (READ), locks, MULTIPLE, transactions, ko, EK, SAATH, EK, row, READ, karne, DETE, HAIN, LEKIN, WRITE, nahi. Exclusive, (WRITE), locks, sirf, EK, transaction, ko, EK, row, ACCESS, karne, deta hai — na, read, na, write, kisi, aur, ko.
SELECT * FROM accounts WHERE id = 1 LOCK IN SHARE MODE; -- shared lock
SELECT * FROM accounts WHERE id = 1 FOR UPDATE; -- exclusive lockInnoDB, mein, "gap, locks" EXISTING, rows, ke, BEECH, ke, "gaps" ko, LOCK, karte, HAIN — phantom, reads, prevent, karne, ke, liye. "Next-key, lock" EK, ROW, lock, aur, EK, gap, lock, ka, COMBINATION, hai.