Mysql
 sql >> база данни >  >> RDS >> Mysql

innodb_lock_wait_timeout увеличава времето за изчакване

Ако това е уеб приложение и се опитвате да задържите транзакцията от една страница на друга, не; няма да работи.

Какво имаш предвид под "точно след това"? Ако не правите нищо между двете изявления, дори таймаут от 1 секунда трябва да е достатъчно голям.

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 |
+----------------------------+

За да обясним GLOBAL vs SESSION за VARIABLES:GLOBAL стойността се използва за инициализиране стойността SESSION, когато връзката ви започне. След това можете да промените стойността на SESSION, за да повлияете на това, което правите. И промяната на GLOBAL стойността няма ефект върху текущата ви връзка.

Промяната на таймаута на 1 е доста безопасна (след като разберете GLOBAL vs SESSION). Единственото нещо, което ще се промени, е честотата на получаване на тази грешка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP PDO bindParam за променлива/низ, използван за IN израз...?

  2. Колона „id“ в където клаузата е двусмислена

  3. Rails валидира уникалността неуспешно при едновременни входове

  4. Mysql - Помогнете ми да променя тази заявка за търсене, за да получа желаните резултати

  5. Предаване на име на колона като параметър към съхранена процедура в mySQL