sql >> Databáze >  >> RDS >> Mysql

MySQL rollback při transakci se ztraceným/odpojeným připojením

Když fyzicky odpojujete klienta, neposíláte normální odpojení (což by způsobilo vrácení zpět) a protokol MySQL není příliš upovídaný, takže server nikdy neví, že klient není. Myslím, že toto je chyba v protokolu ve srovnání s jinými databázovými systémy, kde klient a server mluví interně mnohem více.

Tak jako tak. Existují dvě proměnné, které můžete změnit. V zásadě dělají totéž, ale pro různé klienty.

První je wait_timeout a používají jej klienti aplikací jako java nebo php.

Druhý je interactive_timeout a používá ho klient mysql (jako ve vašich testech)

V obou případech server ukončí připojení po několika sekundách, a když tak učiní, vrátí zpět všechny transakce a uvolní všechny zámky.



  1. Křížové spojení mezi více schématy v MySQL. Privilegia a výkon

  2. SQL OUTPUT Uložené procedury nefungují s ExecuteReader

  3. Je SQLFiddle nefunkční? Chyby pro Oracle, SQL Server, ...?

  4. Dynamické databázové tabulky v django