строке(пока не известно, id или номер телефона)
если ID уникальный индекс, имхо по нему будет дешевле
не вникая в подробности как вариант:
пришли данные и callback url
реализация обмена через long pooling( если сервер не будет успевать обработать по классической схеме) , как будет сформирован массив-ответ - отправить его в колбэк url
со стороны БД ( если SQL) , как вариант - создание временной таблицы из пришедших данные + LEFT JOIN в нее из существующих подписок: если подписан то в столбце будет 1 , если нет , то NULL