Это во многом зависит от типа данных, состояния, в котором работает ваше приложение, транзакций, нескольких пользователей и т. Д.
Как правило, вы не хотите извлекать все данные и работать с данными в вашем приложении, поскольку почти все вышеперечисленные условия приводят к тому, что данные становятся несинхронизированными. Представьте, что пользователь обновляет контакт, пока кто-то другой просматривает эту информацию из кэшированной версии в своем приложении.
В вашем приложении вы должны проектировать запросы к базе данных так, чтобы они получали то, что будет отображаться на текущем экране. Если пользователь просматривает список контактов, тогда запрос извлечет всю таблицу контактов или ее часть, если вы просматриваете страницы с разбивкой по страницам. Когда они нажимают на контакт, например, для получения дополнительной информации, тогда новый запрос запрашивает полную информацию об этом контакте.
Для строк и небольших фрагментов данных, таких как список контактов, у вас не должно быть проблем со скоростью при работе с реляционной базой данных, такой как SQL, MySql или Oracle.