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

как да избегнем застой в mysql

Доколкото разбирам, избраният не придобива заключване и не трябва да е причина за блокиране.

Всеки път, когато вмъкнете/актуализирате/или изтриете ред, се получава заключване. За да избегнете блокиране, трябва да се уверите, че едновременните транзакции не актуализират реда в ред, който може да доведе до блокиране. Най-общо казано, за да избегнете блокиране, трябва да придобивате заключване винаги в същия ред дори в различни транзакции (напр. винаги първо таблица А, след това таблица Б).

Но ако в рамките на една транзакция вмъкнете само в една таблица, това условие е изпълнено и това обикновено не трябва да води до задънена улица. Правите ли нещо друго в транзакцията?

Въпреки това може да възникне задънена улица, ако има липсващи индекси . Когато даден ред се вмъкне/актуализира/изтрие, базата данни трябва да провери релационните ограничения, тоест да се увери, че връзките са последователни. За да направи това, базата данни трябва да провери външните ключове в свързаните таблици. Може води до придобиване на друго заключване освен реда, който е променен. Уверете се, че винаги имате индекс на външните ключове (и разбира се първични ключове), в противен случай това може да доведе до заключване на таблицата вместо зазаключване на ред . Ако се случи заключване на таблицата, конкуренцията за заключване е по-висока и вероятността от блокиране се увеличава.

Не съм сигурен какво точно се случва във вашия случай, но може би ще помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кои знаци трябва да бъдат екранирани, за да се предотвратят (My)SQL инжекции?

  2. Play framework 2.0.1 продължава да се опитва да промени грешен тип база данни

  3. Висока наличност при ограничен бюджет - внедряване на MySQL Galera Cluster с минимален два възела

  4. LIKE и % заместващ знак в findBy*() на Doctrine

  5. MYSQL изтрива всички резултати с count(*)=1