Chcę wstawić zbiorczo około 700 rekordów do bazy danych Androida podczas kolejnej aktualizacji. Jaki jest najskuteczniejszy sposób na zrobienie tego? Z różnych postów wiem, że jeśli używam instrukcji Insert
, powinienem zawinąć je w transakcję. Istnieje również post o używaniu własnej bazy danych, ale potrzebuję tych danych, aby przejść do standardowej bazy danych Android mojej aplikacji. Należy pamiętać, że będzie to wykonywane tylko raz na urządzenie.Wstawianie zbiorcze na urządzeniu z systemem Android
Kilka pomysłów:
umieścić kilka instrukcji SQL w pliku, czytać je w jednej linii na raz, a EXEC SQL.
Umieścić dane w pliku CSV, JSON lub YAML, lub XML, lub cokolwiek innego. Czytaj linię naraz i wykonaj
db.insert()
.Dowiedz się, jak wykonać import i wykonać jeden import całego pliku.
Utwórz bazę danych zawierającą wszystkie rekordy, skopiuj ją na urządzenie z systemem Android i jakoś scal dwie bazy danych.
[EDYCJA] Umieść wszystkie instrukcje SQL w jednym pliku w res/values jako jeden duży ciąg. Następnie odczytaj je po linii i uruchom SQL.
Jaki jest najlepszy sposób? Czy są inne sposoby ładowania danych? Czy 3 i 4 są możliwe?
Dzięki! Ta optymalizacja spowodowała zwiększenie importu grupy rekordów o 2x. –
Przeczytałem blog i komentarze. Oba dostarczyły informacje wystarczające do wstawienia wszystkich moich danych w ciągu kilku sekund. Wiele razy lepiej niż kilka minut. – Knossos
Teraz, gdy 'InsertHelper' jest przestarzałe, jesteśmy zmuszeni używać' SQLiteStatement'? –