У вас обычный примитивный поиск. "тяжесть" поиска зависит от размера таблицы, длины поля, индексов и мощности сервера. В целом, если значения в полях короткие, то нормально. Если у вас там тексты, то нужен полнотекстовый поиск (sphinx, elasticsearch).
Оптимизировать можно следующее:
1. нужно на стороне клиента тот момент, что сейчас у вас при каждом нажатии клавиши летит запрос. То есть если я наберу слово из 5 букв, то полетит 5 запросов. А нужен один. Используйте для этого тайм-аут. Гуглите js debounce.
2. Используйте не keyup keydown, а input. Сейчас при нажатии на клавишу у вас летит 2 запроса - при нажатии и при отжатии.
В каких случаях сервер может лечь? В случае слишком большого количества запросов к этому скрипту. Ну тут стоит отметить, что при большом количестве запросов любой сервер и любой скрипт положат рано или поздно сервер. Тут беспокоиться не о чем.