sql >> Database teknologi >  >> RDS >> Mysql

MySQL - kan jeg begrænse den maksimalt tilladte tid for en forespørgsel at køre?

Opdatering

Fra og med MySQL 5.7 kan du inkludere en MAX_EXECUTION_TIME optimeringstip i din SELECT forespørgsler for at instruere serveren om at afslutte den efter det angivne tidspunkt.

Så vidt jeg ved, hvis du ønsker at gennemtvinge en server-dækkende timeout, eller hvis du bekymrer dig om forespørgsler udover SELECT s, det originale svar er stadig din eneste mulighed.

Oprindeligt svar

Der er ingen måde at angive en maksimal køretid, når du sender en forespørgsel til serveren, der skal køres.

Det er dog ikke ualmindeligt at have et cron-job, der kører hvert sekund på din databaseserver, forbinder og gør noget som dette:

  1. VIS PROCESLISTE
  2. Find alle forbindelser med en forespørgselstid, der er længere end din maksimale ønskede tid
  3. Kør KILL [proces-id] for hver af disse processer


  1. lokale samlingstyper er ikke tilladt i SQL-sætninger

  2. Konverter 'datetime2' til 'smalldatetime' i SQL Server (T-SQL-eksempler)

  3. Om nytten af ​​udtryksindekser

  4. Sådan fungerer Unicode() i SQLite