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

innodb_lock_wait_timeout zvýšit časový limit

Pokud se jedná o webovou aplikaci a pokoušíte se udržet transakci z jedné stránky na druhou, nedělejte to; nebude to fungovat.

Co myslíš tím "hned po"? Pokud mezi těmito dvěma příkazy neděláte nic, i časový limit 1 sekundy by měl být dostatečně velký.

mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                         50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                          1 |
+----------------------------+

Vysvětlení GLOBAL vs. SESSION pro VARIABLES:Hodnota GLOBAL se používá k inicializaci hodnotu SESSION při zahájení připojení. Poté můžete změnit hodnotu SESSION, abyste ovlivnili to, co děláte. A změna hodnoty GLOBAL nemá žádný vliv na vaši aktuální připojení.

Změna časového limitu na 1 je docela bezpečná (jakmile pochopíte GLOBAL vs SESSION). Jediná věc, která se změní, je frekvence výskytu této chyby.




  1. Je možné nastavit časový limit pro SQL dotaz na Microsoft SQL Server?

  2. Přepněte databázi ve fondu připojení v nodejs MySQL

  3. Příklad sys.dm_sql_referenced_entities() SQL Serveru vracejícího entitu, která odkazuje na propojený server

  4. Protože potřebujete znát PowerShell