sql >> Databáze >  >> RDS >> SQLite

Jaké jsou režie používání AUTOINCREMENT pro SQLite na Androidu?

Můj odhad s tím, že nejsem statistik, je, že režie je něco jako 8–12 % pomalejší.

Výsledky jsem získal pomocí 3 konstrukčně podobné a jednoduché tabulky se dvěma sloupci TEXT, počínaje 10 000 vložky pro každou tabulku, opakujte to 5krát na 4 zařízeních.

Tabulka 1 (sloupec Dflt) byl vytvořen pouze se dvěma TEXTovými sloupci (tedy s využitím výchozího ROWID).

Tabulka 2 (sloupec AI) byl vytvořen pomocí _id INTEGER PRIMARY KEY AUTOINCREMENT kromě dvou sloupců TEXT.

Tabulka 3 (žádný sloupec AI) byl vytvořen pomocí _id INTEGER PRIMARY KEY kromě dvou sloupců TEXT.

Takže Tabulka 2 používá trochu odlišný algoritmus výběru ROWID pro vložky.

Čtyři použitá zařízení byla:-

  • (1) Zařízení s emulací Genymotion (Custom Tablet – 5.1.0 – API 22 – 1536x2048)

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

  • (3) HTC 1 M8 (HTC_0PKV1)

  • (4) Tablet Lenovo A10-30 (Lenovo TB2-X30F)

    Výsledky, které jsem získal, byly:-

Výsledky jsou příznivější, když je vše spuštěno pouze v jedné transakci (tj. beginTransaction(); před jakékoli vložení pomocí setTransactionSuccessful(); a endTransaction(); po všech přílohách (pro všechny tabulky tj. celých 150 000 příloh), např. :-

Porovnání těchto dvou tabulek zdůrazňuje výhody, které může mít používání transakcí z hlediska výkonu.




  1. Co je logický OR operátor v SQL Server - SQL Server / TSQL výukový program, část 119

  2. Ušetřete čas spouštěním sestav Microsoft Access pomocí filtrů v zobrazení rozvržení

  3. Použití Oracle JDeveloper s databázovou službou MySQL na platformě Oracle Cloud, část 3

  4. Jak spočítáte počet výskytů určitého podřetězce ve varcharu SQL?