Если вы можете представлять телефонные номера в виде числовых значений вместо строк, то вы можете поместить индекс в поле вашей базы данных, что сделает операции поиска очень быстрыми.Даже если вам нужно представить их как строки, индекс в поле базы данных сделает поиск значений достаточно быстрым, чтобы не создавать проблем в общей схеме вещей.
Ваша самая большая проблема с производительностью будетбыть со всеми туда и обратно между приложением и вашей базой данных.Это узкое место в производительности любой веб-программы.Если вы вряд ли достигнете высокого уровня успеха (возможно, 2% контактов пользователя находятся в вашей базе данных), вам, вероятно, будет лучше отправлять весь список телефонных номеров одновременно, поскольку вы будете просто получать данныеназад для нескольких из них.
Если целью является обновление контактных данных пользователя данными, найденными в вашей базе данных, вы можете создать хеш из соответствующих полей и отправить его вместе с номером телефона.Пусть база данных хранит хеш этих полей на стороне и делает сравнение.Если хеш совпадает, вам не нужно отправлять какие-либо данные обратно, потому что локальная и удаленная версии совпадают.
Для успешной стратегии кэширования потребуется хорошее понимание того, как будут использоваться данные,Я не могу дать много указаний на основе предоставленной информации.Например, если на 90% телефонов, использующих ваше приложение, все телефонные номера будут сопоставлены в небольшой группе номеров в базе данных, то непременно поместите эту небольшую группу в Hashtable.Но если пользователи, скорее всего, будут иметь любые номера телефонов, которые не входят в эту небольшую группу, вам придется совершать обходы базы данных.Ключом будет создание запроса, который позволит базе данных вернуть все необходимые данные за одну поездку.