Будет "лагать" или нет зависит от нескольких факторов:
- Мощность гаджета
- Какой объем данных у вас в одной записи в базе данных. Скажем, если у вас хранятся комментарии пользователей из условного сайта, то размер записи в базе данных может быть довольно большой. Как следствие, 50 000 записей это большой объем данных.
- Как вы достаете данные из SQLite и кладете их коллекцию. Например, вы получаете данные из базы, но не напрямую их в коллекцию кладете, а перед этим формируете POJO-объекты, которые уже будут элементами вашей коллекции. Это дополнительные расходы.
- Как вы формируете коллекцию. Скажем, вы используете в качестве коллекции
ArrayList. Тогда желательно знать размер коллекции до ее создания, т.к. при использовании конструктора без параметров capacity = 10 по-умолчанию. При переполнении новая capacity = oldCapacity * 3 / 2 + 1 и происходит копирование всех элементов в массив нового размера (System.arrayCopy()). Хоть операция копирования и вылизана до последней строчки, все равно она крайне дорогая.
Я недавно задавал похожий вопрос. Большинство комментаторов, высказалось за то, что особой проблемы нет какой объем данных грузить за один раз из базы данных. Мое мнение из практики: это не совсем так, если грузить достаточно большие данные из базы, затем помещать их в коллекцию, затем в адаптер RecyclerView, тогда даже на топовых устройствах будет подтормаживать. Смотрите обсуждения в упомянутом вопросе, пробуйте и делайте свои выводы.
Вам можно посоветовать две стратегии оптимизации:
- Использовать связку
SQLiteCursor - RecyclerView напрямую, минуя промежуточную коллекцию. В таком подходе вы напрямую даете cursor c данными в RecyclerView. Вот реализация такого подхода: CursorRecyclerViewAdapter
- Подгружать данные не сразу все, а частями, по мере необходимости. Обзор таких подходов смотрите здесь. Недавно вышла от Google библиотека Paging Library, которая организует постраничную подгрузку, можете её глянуть.
Cursorв список обязательно черезCursorLoader. Пример использованияCursorLoader(здесь ListView но сути это никак не меняет) – pavlofff Dec 25 '17 at 11:41