нет необходимости дергать БД на каждую букву. сделайте задержку, если нет ввода в теч 200-400мс (подберете сами как удобнее будет), то стартуйте поиск.
В таком случае число запросов заметно сократится. и нет смысла на самом деле искать, пока пользователь набирает. как только он сделал небольшую паузу в наборе — можно вывести ему подсказки.