Najlepszą opcją dla Ciebie jest wyłapanie warunków wyszukiwania, których nie można wykonać.
W MySQL od 5.7.8 istnieje ustawienie max_execution_time .
Możesz także wymyślić jakiś skrypt cron, który sprawdza SHOW PROCESSLIST
i obsłuż zapytania, które są przetwarzane dłużej niż Twój limit czasu.