Максимальный размер базы данных SQLite в приложении Android

Я новичок в разработке Android.

В настоящее время я работаю над одним приложением Android, имеющим большой объем данных.

Поэтому я подумал, что мне нужно хранить некоторые из этих данных локально.

У меня есть одна база данных, имеющая 2 таблицы.

Размер таблицы 1: 4,5 МБ Размер таблицы 2: 3,5 МБ в настоящее время.

т.е. в целом около 8,0 МБ, но в будущем размер базы данных может быть увеличен и может достигнуть 10 МБ.

Таблица 1: строки (14927) и столбцы (17) Таблица 2: строки (9903) и столбцы (38)

Я сомневаюсь, что я могу хранить столько данных локально в приложении для Android, или это может повлиять на скорость приложения.

Я не хочу хранить эти данные во внешнем хранилище. И я не могу сохранить его в базе данных сервера, поскольку мне приходится много раз использовать эти данные в приложении. Пока другие данные находятся на сервере, они должны использоваться централизованно.

Это моя точка зрения. Но, пожалуйста, дайте мне ваши предложения.

Что делать, если существует такой размер базы данных.

Пожалуйста, помогите мне. Заранее спасибо...:)

4 ответа

Максимальный размер базы данных может составлять примерно 1,4e+14 байт (140 терабайт или 140 000 гигабайт).

Ссылка: Официальная документация SQLite и ограничения

14. Максимальный размер базы данных

Каждая база данных состоит из одной или нескольких "страниц". В пределах одной базы данных каждая страница имеет одинаковый размер, но разные базы данных могут иметь размеры страниц, равные двум, от 512 до 65536 включительно. Максимальный размер файла базы данных составляет 2147483646 страниц. При максимальном размере страницы 65536 байт это приводит к максимальному размеру базы данных приблизительно 1,4e+14 байт (140 терабайт, или 128 тибибайт, или 140 000 гигабайт, или 128 000 гибибайт).

Вы можете хранить эти данные без проблем, я работаю над БД. размер составляет около 35 МБ. Вы должны использовать кэширование для ускорения получения данных.

Я не предпочитаю внутреннее хранилище, оно маленькое.

Я не хочу хранить эти данные во внешнем хранилище. И я не могу сохранить его в базе данных сервера, поскольку мне приходится много раз использовать эти данные в приложении.

Поэтому, если вы не хотите использовать внешнее хранилище, ваш единственный способ - использовать внутреннее хранилище (также вы не хотите использовать удаленный сервер). Обычно, когда база данных имеет больший размер, внешнее хранилище обычно используется для оптимизации приложения. Но это также зависит от характера данных, если они чувствительны или нет, поэтому внешнее хранилище не всегда выигрывает.

Но в вашем случае я не думаю, что производительность вашего приложения будет снижена. Только запросы по вашей базе данных могут длиться дольше, чем запросы по 10-100 строкам (запросы могут быть оптимизированы путем создания соответствующих индексов).

Но несколько предложений по повышению производительности:

  • Попробуйте удалить записи, которые не используются в течение длительного времени
  • Вы можете сжать ваши данные, что приведет к уменьшению размера БД

Вы можете хранить это большое количество данных в sqlite. Это может повлиять на поиск запросов в ваших таблицах, а не в вашем приложении, и вы всегда должны взаимодействовать с базой данных в отдельном потоке, а не в основном потоке. Но вы должны рассмотреть возможность удаления строк из таблиц, которые больше не требуются пользователю, это может освободить некоторую нагрузку от базы данных.

Другие вопросы по тегам