In MySQL 5 is het mogelijk om diverse timeouts te definiëren, zoals wait_timeout en interactive_timeout. Deze bepalen onder andere of de verbinding tussen de client en de server wordt verbroken na een bepaald aantal seconden.
Ik heb een database voor een zoekmachine met vele miljoenen rows verspreid in een aantal tabellen waar goede (maar niet altijd voldoende) indices op staan. Door bepaalde paramaters voor de zoekmachine te kiezen is het mogelijk om queries héél lang te laten duren doordat de MySQL-server temporary tables gaat aanmaken. Dit is niet simpel op te lossen door andere of meer indices aan te maken.
Ik wil dat queries die langer dan bijvoorbeeld 15 seconden worden afgekapt, en dat in dit geval de juiste error code terug wordt gestuurd naar de client. Hoe doe ik dit? Een externe script die de processlist bijhoudt is geen optie, evenals een disconnect zonder dat de daadwerkelijke query wordt gestopt.
Ik heb een database voor een zoekmachine met vele miljoenen rows verspreid in een aantal tabellen waar goede (maar niet altijd voldoende) indices op staan. Door bepaalde paramaters voor de zoekmachine te kiezen is het mogelijk om queries héél lang te laten duren doordat de MySQL-server temporary tables gaat aanmaken. Dit is niet simpel op te lossen door andere of meer indices aan te maken.
Ik wil dat queries die langer dan bijvoorbeeld 15 seconden worden afgekapt, en dat in dit geval de juiste error code terug wordt gestuurd naar de client. Hoe doe ik dit? Een externe script die de processlist bijhoudt is geen optie, evenals een disconnect zonder dat de daadwerkelijke query wordt gestopt.