SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jakie są koszty ogólne korzystania z AUTOINCREMENT dla SQLite na Androidzie?

Według moich szacunków, zwracając uwagę, że nie jestem statystykem, koszty ogólne wynoszą mniej więcej 8-12% wolniej.

Wyniki uzyskałem za pomocą 3 strukturalnie podobne i proste tabele z dwiema kolumnami TEKST, działającymi 10 000 wstawia się na każdą tabelę, powtarzając to 5 razy na 4 urządzeniach.

Tabela 1 (kolumna Dflt) został utworzony tylko z dwóch kolumn TEKSTOWYCH (w ten sposób z wykorzystaniem domyślnego ROWID).

Tabela 2 (kolumna AI) został utworzony przy użyciu _id INTEGER PRIMARY KEY AUTOINCREMENT oprócz dwóch kolumn TEKST.

Tabela 3 (bez kolumny AI) został utworzony przy użyciu _id INTEGER PRIMARY KEY oprócz dwóch kolumn TEKST.

Więc Tabela 2 używa nieco innego algorytmu wyboru ROWID na wkładki.

Cztery użyte urządzenia to:-

  • (1) Emulowane urządzenie Genymotion (tablet niestandardowy — 5.1.0 — API 22 — 1536x2048)

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

  • (3) HTC 1 M8 (HTC_0PKV1)

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

    Otrzymane przeze mnie wyniki były następujące:-

Wyniki są korzystniejsze, gdy wszystko jest uruchamiane tylko w jednej transakcji (tj. beginTransaction(); przed wstawkami, z setTransactionSuccessful(); i endTransaction(); po wszystkich insertach (dla wszystkich tabel, czyli całych 150 000 insertów), np. :-

Porównanie obu tabel podkreśla korzyści, jakie korzystanie z transakcji może mieć dla wydajności.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spróbuj ponownie otworzyć już zamknięty obiekt sqlitedatabase

  2. jak umieścić bazę danych i odczytać bazę danych z folderu zasobów android, które są tworzone i eksportowane w sqllite?

  3. Zwróć wyszukane dane z sqlite

  4. Jak stworzyć tabelę z dwoma lub więcej kluczami obcymi za pomocą Android Room?

  5. Umieszczanie danych kursora w tablicy