系統整理 MySQL 事務控制 (BEGIN/COMMIT/ROLLBACK)、表鎖 (LOCK TABLES)、隔離級別設定、隱含提交命令、一致性備份鎖等核心語法與行為。
autocommit=ON,每條更新即時落盤。SET AUTOCOMMIT=0 或 START TRANSACTION (4.0.11+,ANSI 標準) 開啟顯式事務。COMMIT 提交;ROLLBACK 回滾。非事務表更新即時生效,回滾時產生警告且不變更。ALTER TABLE、CREATE/DROP INDEX、DROP/CREATE/RENAME/TRUNCATE TABLE、DROP DATABASE 會自動提交前序事務。LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [...]
UNLOCK TABLES
READ:所有線程可讀,不可寫。READ LOCAL 允許非衝突 INSERT (MyISAM 並發插入)。WRITE:唯有持鎖線程可讀寫,其他阻塞。優先級高於 READ。LOW_PRIORITY WRITE:等待無 READ 鎖時才加鎖,避免寫入飢餓讀取。LOCK TABLES 自動釋放舊鎖。UPDATE 原子性;用 UPDATE ... SET col=col+val 或 LAST_INSERT_ID() 替代鎖表;用戶級鎖 GET_LOCK()/RELEASE_LOCK()。SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL
{READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
GLOBAL 需 SUPER 權限影響新連線;SESSION 影響當前連線後續事務。--transaction-isolation 設定全域預設值。FLUSH TABLES WITH READ LOCK:全庫唯讀鎖,配合支援快照的檔案系統 (Veritas 等) 可秒級熱備份。
LOCK TABLES 非事務安全,執行前會自動提交所有活躍事務。