Приложение для Android работает с использованием базы данных SQLite, созданной на ПК пользователя и переданной на устройство. Все это работает, но я не ожидал количества пользователей, у которых было бы действительно огромное количество данных. В этих случаях пользовательский интерфейс очень медленный, так как он ожидает получения данных.Производительность Android SQLite с индексами
Я пробовал несколько трюков, которые я «уверен» ускорил бы, но ничто, кажется, не имеет заметного эффекта. Мои запросы почти все очень просты, обычно это один «col = val» для предложения WHERE и данные INTEGER в столбце. Поэтому я не могу много сделать с запросами.
Последнее, и я не являюсь экспертом SQL любыми способами, заключался в том, чтобы использовать команды «CREATE INDEX» на ПК, полагая, что эти индексы используются для ускорения поиска в базе данных. Индексы значительно увеличили размер файла базы данных, поэтому я был удивлен, что он, похоже, не влияет на скорость моего приложения! Экран, который занимал 8 секунд для заполнения без индексов, по-прежнему занимает около 8 секунд даже с ними. Я надеялся довести дело до половины этого.
Что мне интересно, если реализация SQLite на Android использует индексы базы данных вообще, или если я просто теряю пространство, создавая их. Кто-нибудь может ответить на это?
Кроме того, любые другие вещи, чтобы попытаться ускорить доступ?
(Для чего на абсолютной основе пользователям не на что жаловаться. У моего наихудшего пользователя до сих пор есть данные, которые генерируют 630 000 записей (15 таблиц), поэтому возможно только так много!)
Дуг Гордон GHCS Systems
Опубликовать некоторые медленные запросы, а также определения таблиц и определения индексов – Mikpa 2010-11-28 21:17:41