Работа с большой базой данных в Android - PullRequest
14 голосов
/ 21 января 2011

В настоящее время я занимаюсь разработкой приложения, которое может создать очень большую базу данных.Я планировал установить приложение на SD-карту, чтобы освободить место.Недавние сделки здесь предупредили меня, что это может быть не очень хорошая идея.Могу ли я предпринять какие-либо шаги, чтобы смягчить опасность этого курса действий?Или есть лучшие альтернативы?

Ответы [ 3 ]

11 голосов
/ 21 января 2011

Это исчерпывающий пост по теме (я не автор).

Я думаю, в целом необходимо сообщить, что SQLite - это просто механизм SQL для доступа к файлу. Похоже, что текущий лимит рынка составляет 50 МБ для всего APK. При установке во внутреннюю память вам требуется в 2 раза больше вашего размера APK. Для установки на SDCard требуется только указанный размер APK.

Вот против чего вы будете работать: 1.) Поскольку SQLite - это просто абстракция над вашим файлом, при выборе, вставке, обновлении и т. Д. Вы будете нести расходы на чтение и запись на SDCard 2.) Я видел упоминание о мягком ограничении 10000 записей в зависимости от производительности. Эта статья немного устарела, так что, скорее всего, она стала лучше.

Кроме того, вам, вероятно, придется настроить некоторые тесты, чтобы увидеть, что выполнимо. Беглый поиск в гугле не показал никаких тестов на сегодняшний день.

4 голосов
/ 25 января 2011

Как указывалось ранее, SQLite обладает необходимыми функциями, упакованными в небольшую библиотеку. Он предназначен для замены простого доступа к файлам надежным, восстанавливаемым, транзакционным доступом к данным через SQL API. На их главной странице есть отличное резюме.

Буквально тысячи проектов используют SQLite. Если ваш набор данных будет очень большим (более 100-200 МБ), то вы можете рассмотреть возможность использования Berkeley DB в качестве опции. Berkeley DB недавно представила поддержку SQL API , которая полностью совместима с SQLite. В дополнение к функциональности, предоставляемой анализатором SQLite, планировщиком запросов и исполнителем, вы также получаете надежность и масштабируемость, которыми славится Berkeley DB. У нас есть несколько клиентов, которые с удовольствием начали с SQLite. Когда они поняли, что им нужен дополнительный параллелизм, масштабируемость и надежность, которых нет в SQLite, они заменили библиотеку SQLite на библиотеку BDB, перекомпилировали свое приложение и протестировали и запустили его в Беркли в течение нескольких дней.

Я один из менеджеров по продуктам в Berkeley DB, поэтому я немного предвзят. :-) Однако мы внедрили API BDB SQL, чтобы мы могли предложить пользователям лучшее из обоих миров: вездесущность и простота использования SQLite в сочетании с параллелизмом, надежностью и масштабируемостью Berkeley DB. Berkeley DB, особенно с большими наборами данных, может существенно повлиять на производительность приложений.

2 голосов
/ 24 ноября 2011

Как уже упоминалось выше, вы можете использовать Berkeley DB (не Java Edition) на Android.Я описал шаги процесса кросс-компиляции здесь , так как он требует незначительной настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...