Jak správně používat zámky a transakce v MySQL a InnoDB?

Většina programátorů chápe SQL transakce jako cestu k tomu, jak vrátit provedené změny v případě, že dojde k nějaké chybě a zabránit tak nekonzistenci dat.

Tento přístup není špatný, ale může vést k závažným problémům – Deadlock-ům (např. „Lock wait time exceeded, try restarting transaction„), pokud nebudete uvažovat i další aspekty transakcí, zámků (shared a exclusive locks), které vytváří, a režimů izolace (isolation level), které používají.

Pokud jste již narazili na Lock wait time exceeded nebo tomu chcete předejít, tenhle článek je právě pro vás.

Pokračování textu Jak správně používat zámky a transakce v MySQL a InnoDB?