Будет ли производительность SQLite ухудшаться, если размер базы данных превышает 2 гигабайта?
В прошлом году, когда я проверил SQLite на своем веб-сайте, рекомендуемый размер базы данных SQLite составлял 2 гигабайта. Но теперь я больше не мог найти эту рекомендацию.
Так кто-нибудь пытался работать с базой данных SQLite размером более 2 гигабайт, используя последнюю версию? Насколько хорошо работал SQLite?
P.S: Я хотел бы сделать мобильное приложение, которое требует большой базы данных (например, хранения статей Wikipedia), которая работает локально.
Ответы
Ответ 1
Нет ограничения на 2 ГБ.
Файлы базы данных SQLite имеют максимальный размер около 140 ТБ.
На телефоне размер хранилища (несколько ГБ) ограничит размер файла базы данных,
в то время как размер памяти ограничивает количество данных, которые вы можете получить из запроса.
Кроме того, у Android-курсоров есть предел в 1 МБ для результатов.
Размер базы данных сам по себе не повлияет на вашу производительность.
Ваши запросы будут быстрыми, пока они не будут получать больше данных, чем вписываются в кеш-страницу базы данных (по умолчанию 2 МБ).
Ответ 2
Обычно чем больше база данных, тем больше данных у вас есть. Чем больше данных у вас есть, тем больше может потребоваться длительный поиск. Они не обязательно, это зависит от поиска.
Что касается вставок, они могут занять больше времени, если у вас много индексов на таблице. Восстановление индекса может занять некоторое время, поэтому ожидайте снижения скорости вставки с объемом данных.
Обновления также могут быть более медленными - необходимо найти первые строки (поиск), затем значения должны быть изменены (может вызвать восстановление индекса).
Я рассказываю вам об этом по опыту: если вы ожидаете большого количества данных в своей базе данных, подумайте о его разбиении на несколько баз данных. Это работает, если ваши данные собираются ежедневно, и вы можете создать базу данных для каждого дня. Может сделать ваш поисковый код более сложным, но ускорит работу для ограниченного поиска/