Min uppskattning, som noterar att jag inte är en statistiker, är att omkostnaderna är ungefär 8-12 % långsammare.
Jag fick resultaten med 3 strukturellt lika och enkla tabeller med två TEXT-kolumner med 10 000 infogar per varje tabell, upprepa detta 5 gånger på 4 enheter.
Tabell 1 (Dflt-kolumn) skapades med bara de två TEXT-kolumnerna (därmed standard ROWID).
Tabell 2 (AI-kolumn) skapades med _id INTEGER PRIMARY KEY AUTOINCREMENT
förutom de två TEXT-kolumnerna.
Tabell 3 (Ingen AI-kolumn) skapades med _id INTEGER PRIMARY KEY
förutom de två TEXT-kolumnerna.
Så Tabell 2 använder den något annorlunda ROWID-valalgoritmen för inlägg.
De fyra enheterna som användes var:-
-
(1) En Genymotion-emulerad enhet (Custom Tablet - 5.1.0 - API 22 - 1536x2048)
-
(2) En Onix 10" surfplatta (AT101-1116)
-
(3) En HTC 1 M8 (HTC_0PKV1)
-
(4) En Lenevo A10-30 surfplatta (Lenovo TB2-X30F)
Resultaten jag fick var:-
Resultaten är mer fördelaktiga när allt körs i bara en transaktion (dvs beginTransaction();
före eventuella inlägg, med setTransactionSuccessful();
och endTransaction();
efter alla insatser (för alla tabeller d.v.s. hela 150 000 inlägg), t.ex. :-
Jämförelse av de två tabellerna visar de fördelar som användning av transaktioner kan ha på prestanda.