Но проблема в том что база данных контактов постоянно меняется и изменяется. И нужен всегда актуальный вариант(по крайней мере актуальный на каждые 5-10 минут), но учитывая, что перебор составляет очень большое количество времени (1.3 контакта в секунду) это не позволительно.
Один раз проверить данные в базе, а затем проверять на опечатки перед записью в нее.
Проверять можно частично по именам, с помощью
LIKE условия, но, наверное, лучше один раз просто пройтись по всей базе.
>Или оптимизировать поиск
Индексы, кэширование.
Еще можно взять
sphinxsearch какой-нибудь.