sql >> Databasteknik >  >> RDS >> Mysql

MySQL - kan jag begränsa den maximala tiden som tillåts för en fråga att köras?

Uppdatera

Från och med MySQL 5.7 kan du inkludera en MAX_EXECUTION_TIME optimeringstips i din SELECT frågor för att instruera servern att avsluta den efter den angivna tiden.

Så vitt jag vet, om du vill genomdriva en serveromfattande timeout, eller om du bryr dig om frågor förutom SELECT s, det ursprungliga svaret är fortfarande ditt enda alternativ.

Originalt svar

Det finns inget sätt att ange en maximal körtid när du skickar en fråga till servern som ska köras.

Det är dock inte ovanligt att ha ett cron-jobb som körs varje sekund på din databasserver, ansluter och gör något så här:

  1. VISA PROCESSLISTA
  2. Hitta alla anslutningar med en frågetid som är längre än din maximala önskade tid
  3. Kör KILL [process-id] för var och en av dessa processer


  1. SQLite Skapa tabell

  2. Hur du skyddar din MySQL- och MariaDB-databas mot cyberattacker när du är på ett offentligt nätverk

  3. psycopg2:infoga flera rader med en fråga

  4. Ansluter till MySQL med Python