sql >> Database >  >> RDS >> SQLite

Wat zijn de overheadkosten van het gebruik van AUTOINCREMENT voor SQLite op Android?

Mijn schatting, aangezien ik geen statisticus ben, is dat de overhead ongeveer 8-12% is langzamer.

Ik heb de resultaten verkregen met 3 structureel vergelijkbare en eenvoudige tabellen met twee TEXT-kolommen, met 10,000 voegt per tafel in, dit 5 keer herhalen op 4 apparaten.

Tabel 1 (Dflt-kolom) is gemaakt met alleen de twee TEXT-kolommen (waardoor de standaard ROWID wordt gebruikt).

Tabel 2 (AI-kolom) is gemaakt met _id INTEGER PRIMARY KEY AUTOINCREMENT naast de twee TEXT-kolommen.

Tabel 3 (Geen AI-kolom) is gemaakt met _id INTEGER PRIMARY KEY naast de twee TEXT-kolommen.

Dus Tabel 2 gebruikt het iets ander ROWID-selectiealgoritme voor inzetstukken.

De vier gebruikte apparaten waren:-

  • (1) Een door Genymotion geëmuleerd apparaat (aangepaste tablet - 5.1.0 - API 22 - 1536x2048)

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

  • (3) Een HTC 1 M8 (HTC_0PKV1)

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

    De resultaten die ik behaalde waren:-

De resultaten zijn gunstiger wanneer alles in slechts 1 transactie wordt uitgevoerd (d.w.z. beginTransaction(); vóór eventuele invoegingen, met setTransactionSuccessful(); en endTransaction(); na alle inserts (voor alle tabellen, d.w.z. de volledige 150.000 inserts), b.v. :-

Vergelijking van de twee tabellen, laat de voordelen zien die het gebruik van transacties kan hebben op prestaties.




  1. SQL Server - Wat gebeurt er wanneer een rij in een tabel wordt bijgewerkt?

  2. Hoe kan ik voorkomen dat Postgres een subquery inline invult?

  3. Hoe gebruik je een dynamische parameter in een IN-clausule van een JPA-query met de naam?

  4. Wat is er eigenlijk aan de hand met dat zoeken?