sql >> Database teknologi >  >> RDS >> SQLite

Hvad er omkostningerne ved at bruge AUTOINCREMENT til SQLite på Android?

Mit skøn, idet jeg bemærker, at jeg ikke er statistiker, er, at overhead er noget i retning af 8-12 % langsommere.

Jeg opnåede resultaterne ved hjælp af 3 strukturelt lignende og enkle tabeller med to TEKST-kolonner, der kører 10.000 indsæt pr. hver tabel, gentag dette 5 gange på 4 enheder.

Tabel 1 (Dflt-kolonne) blev oprettet med kun de to TEKST-kolonner (derved udnyttede standard ROWID).

Tabel 2 (AI kolonne) blev oprettet ved hjælp af _id INTEGER PRIMARY KEY AUTOINCREMENT ud over de to TEKST kolonner.

Tabel 3 (Ingen AI-kolonne) blev oprettet ved hjælp af _id INTEGER PRIMARY KEY ud over de to TEKST kolonner.

Tabel 2 bruger den lidt anderledes ROWID-valgalgoritme til indlæg.

De fire anvendte enheder var:-

  • (1) En Genymotion-emuleret enhed (Custom Tablet - 5.1.0 - API 22 - 1536x2048)

  • (2) En Onix 10" tablet (AT101-1116)

  • (3) En HTC 1 M8 (HTC_0PKV1)

  • (4) En Lenevo A10-30 tablet (Lenovo TB2-X30F)

    De resultater, jeg opnåede, var:-

Resultaterne er mere gunstige, når alt køres i kun 1 transaktion (dvs. beginTransaction(); før nogen indsættelser med setTransactionSuccessful(); og endTransaction(); efter alle indstik (for alle tabeller dvs. hele 150.000 indstik), f.eks. :-

Sammenligning af de to tabeller fremhæver de fordele, som brug af transaktioner kan have for ydeevne.




  1. PostgreSQL 12:Fremmednøgler og opdelte tabeller

  2. T-SQL tirsdag #64:Én trigger eller mange?

  3. Sådan konfigureres SELinux til MySQL-baserede systemer (MySQL/MariaDB Replication + Galera)

  4. Ret forespørgsel for at få det aktuelle antal forbindelser i en PostgreSQL DB