La mejor opción para usted es detectar las condiciones de búsqueda que no se pueden realizar.
En MySQL a partir de 5.7.8 hay un configuración max_execution_time .
También puede crear un script cron que verifique SHOW PROCESSLIST
y maneje las consultas que se procesan más allá de su límite de tiempo.