Что ж, при наличии только 80 000 записей и при условии, что ваша база данных хорошо спроектирована и нормализована, достаточно добавить индексы для столбцов, которые вы часто используете в предложениях WHERE или ORDER BY.
Существуют и другие более сложные методы, которые вы можете использовать (например, денормализация определенных таблиц, разбиение на разделы и т. Д.), Но обычно они начинают действовать только тогда, когда у вас есть миллионы записей, с которыми вы можете иметь дело.
ETA:
Я вижу, вы обновили вопрос, упомянув, что это на мобильной платформе - это может немного изменить ситуацию.
Предполагая, что вы вообще не можете сократить набор данных, вы могли бы попытаться немного разбить базу данных. Идея состоит в том, чтобы взять одну большую таблицу и разделить ее на несколько меньших идентичных таблиц, каждая из которых содержит подмножество данных.
Какая из этих таблиц войдет в данную строку, зависит от того, как вы решите ее разбить. Например, если у вас есть поле customer_id, которое может варьироваться от 0 до 10000, вы можете поместить клиентов 0–2500 в table1, 2500–5000 в table2 и т. Д., Разделив одну большую таблицу на 4 меньших. Тогда в вашем приложении будет логика, которая будет определять, какую таблицу (или таблицы) запрашивать для получения данной записи.
Вы хотели бы разделить ваши данные таким образом, чтобы вам обычно требовалось запрашивать только один из разделов за раз. Как именно вы будете разбивать данные, будет зависеть от того, какие поля у вас есть и как вы их используете, но общая идея та же.