Най-добрият вариант за вас е да уловите условия за търсене, които не могат да бъдат изпълнени.
В MySQL, започвайки от 5.7.8, има настройка на max_execution_time .
Също така можете да измислите някакъв cron скрипт, който проверява SHOW PROCESSLIST
и обработвайте заявки, които се обработват повече от вашето времево ограничение.