L'opzione migliore per te è catturare le condizioni di ricerca che non possono essere eseguite.
In MySQL a partire dalla 5.7.8 è presente un impostazione del tempo_di_esecuzione_max .
Inoltre puoi creare uno script cron che controlla SHOW PROCESSLIST
e gestisci le query che vengono elaborate più del tuo limite di tempo.