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

MySQL:Времето за изчакване на заключване е превишено

Съгласен съм с Ерик; TRUNCATE TABLE е правилният начин. Ако обаче не можете да го използвате по някаква причина (например, ако не наистина искате да изтриете всеки ред в таблицата), можете да опитате следните опции:

  • Изтрийте редовете на по-малки партиди (напр. DELETE FROM bundle_inclusions WHERE id BETWEEN ? и ?)
  • Ако това е таблица MyISAM (всъщност това може да работи и с InnoDB), опитайте да издадете LOCK TABLE преди DELETE. Това трябва да гарантира, че имате изключителен достъп.
  • Ако е таблица на InnoDB, тогава след настъпва времето за изчакване, използвайте SHOW INNODB STATUS. Това трябва да ви даде известна представа защо придобиването на ключалката не е успешно.
  • Ако имате привилегията СУПЕР, можете да опитате ПОКАЗВАНЕ НА PROCESSLIST ALL, за да видите какви други връзки (ако има такива) използват таблицата, и след това да използвате KILL, за да се отървете от тези, с които се състезавате.

Сигурен съм, че има много други възможности; Надявам се някой от тези да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT INTO или UPDATE с две условия

  2. Транзакции на PHP, MySQL, PDO - Кодът вътре в try block спира ли на commit()?

  3. mysql заявка за дата, между две полета за дата

  4. Как да свържете Amazon RDS в iOS

  5. Много състояния на края на заявката в MySQL, всички връзки се използват за броени минути