Automatyczne indeksowanie zostało wprowadzone w sqlite 3.7.17. Wersja sqlite z tą funkcją była dostępna tylko w wersji zapoznawczej dla programistów Androida L. Dlatego otrzymujesz wiadomość tylko na Lollipop, ale nie wcześniej. Nawet jeśli jest to rejestrowane jako błąd, tak naprawdę jest to tylko wiadomość.
Zasadniczo automatyczne indeksowanie wchodzi w grę, gdy wykonujesz wyszukiwania w nieindeksowanych kolumnach. sqlite zakłada, że jest tak dużo danych, że wygenerowanie tymczasowego indeksu jest tańsze niż surowe wyszukiwanie.
Rozważ dodanie wyraźnych, stałych indeksów do kolumn wyszukiwania za pomocą CREATE INDEX
. Na przykład po CREATE TABLE
:
CREATE INDEX indexname ON tablename(columnname);
gdzie możesz wybrać tablename(columnname)
z wiadomości autoindeksowania tworzonych przez sqlite.
Jeśli chcesz tylko przywrócić stare zachowanie, możesz wyłączyć automatyczne indeksowanie za pomocą
PRAGMA automatic_index=off;