sql >> Databasteknik >  >> RDS >> SQLite

Vilka är omkostnaderna för att använda AUTOINCREMENT för SQLite på Android?

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.

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.




  1. Hur frågar jag efter XML-värden och attribut från tabellen i SQL Server?

  2. Hur kan jag lista alla främmande nycklar som refererar till en given tabell i SQL Server?

  3. Skapa eller simulera tvådimensionella arrayer i PL/SQL

  4. Hur man inaktiverar plugins från WordPress-databasen