Снизится ли производительность SQLite, если размер базы данных превышает 2 гигабайта?

в прошлом году, когда я проверил SQLite на своем веб-сайте, рекомендуемый размер базы данных SQLite составлял 2 гигабайта. Но теперь я не мог найти эту рекомендацию снова.

Итак, кто-нибудь пытался работать с базой данных SQLite, которая больше 2 гигабайт, используя последнюю версию? Насколько хорошо SQLite работает?

P. S: Я хотел бы сделать мобильное приложение, которое требует большой базы данных (например, хранение статей Википедии), которая работает локально.

2 ответов


нет предела 2 ГБ.

файлы базы данных SQLite имеют максимальный размер около 140 ТБ.

на телефоне размер хранилища (несколько ГБ) ограничит размер файла базы данных, в то время как размер памяти будет ограничивать количество данных, которые вы можете получить из запроса. Кроме того, курсоры Android имеют ограничение 1 МБ для результатов.


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


обычно чем больше база данных, тем больше в ней данных. Чем больше данных у вас есть, тем дольше поиск может занять. В этом нет необходимости, все зависит от поиска.

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

обновления также могут быть медленнее-сначала должны быть найдены строки (поиск), затем значения должны быть изменены (может вызвать index rebuild).

Я говорю вам это из опыта: если вы ожидаете много данных в своей базе данных, рассмотрите возможность разделения его на несколько баз данных. Это работает, если ваши данные собираются ежедневно и вы можете создать базу данных на каждый день. Может сделать ваш поисковый код более сложным, но ускорит работу для ограниченного поиска/