sql >> Databasteknik >  >> RDS >> Mysql

Försöker uppdatera 640k rader i mySQL förlorar anslutningen till MySQL-servern under förfrågan

Det finns en annan potentiell orsak till detta fel, och det är ActiveRecord-anslutningspoolen skördare . När den är aktiverad skannar reaper anslutningspoolen efter "döda" anslutningar och stänger dem. I mina tester verkar det vara övernitiskt och stänger också helt levande anslutningar (i allmänhet de som kör lite större frågor).

Försök att rensa reaping_frequency från din DB-konfiguration (som stänger av den) och se om det hjälper. Skanna din kodbas efter den strängen och se till att den är inställd (eller helt enkelt borttagen!). Om du ser en rad som config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 , vet att || 10 sätter faktiskt en låg standard på 10s. Det här mönstret fanns i rails-kodbasen en tid, tills ändringen återställdes på grund av att det orsakar olika problem, inklusive att döda långvariga frågor , men är fortfarande rekommenderas av Heroku .

Om det löser saker och ting genom att inaktivera reaper, rekommenderar jag att du låter den vara inaktiverad. Rails ställer inte längre in det som standard, och det verkar orsaka fler problem än det löser.

Jag hade ett fel som ditt, och det var så jag fixade det. Personligen håller jag det inaktiverat. Jag skrev mer detaljerat om mitt specifika problem på min blogg .



  1. docker mysql på annan port

  2. Intervju med Oren Eini på RavenDB om databashantering, analys &säkerhet

  3. Hur man gör SQLites LIKE-operatör skiftlägeskänslig

  4. Hur UTC_DATE() fungerar i MariaDB