sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag stoppa en MySQL-fråga om det tar för lång tid?

Det finns ett trevligt Perl-skript på CPAN för att göra just detta:http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Man behöver bara schemalägga att den körs med rätt parametrar. Skapa en CRONtab-fil /etc/cron.d/mysql_query_timeout för att schemalägga att den körs varje minut:

* * * * * root /path/to/mysql-genocide -t 7200 -s -K

Där 7200 är den högsta tillåtna exekveringstiden i sekunder. Omkopplaren -s filtrerar bort alla utom SELECT-frågor. -K-växeln instruerar skriptet att döda matchningsprocesserna.

Rotanvändaren bör kunna köra lokala mysql-verktyg utan autentisering, annars måste du ange autentiseringsuppgifter på kommandoraden.



  1. Architecting for Security:En guide för MySQL

  2. Hur kan vi definiera utdataparameterstorlek i lagrad procedur?

  3. Finns det några verkliga fördelar med att använda ett RDBMS jämfört med platta filer på ett enkelt webbdocsystem (eller grundläggande CMS)?

  4. MYSQL ORDER BY CASE Problem