SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Apa overhead menggunakan AUTOINCREMENT untuk SQLite di Android?

Perkiraan saya, dengan memperhatikan bahwa saya bukan ahli statistik, adalah bahwa biayanya kira-kira 8-12% lebih lambat.

Saya memperoleh hasil menggunakan 3 tabel yang mirip secara struktural dan sederhana dengan dua kolom TEXT, menjalankan 10.000 sisipan per setiap tabel, ulangi ini 5 kali di 4 perangkat.

Tabel 1 (kolom Dflt) dibuat hanya dengan dua Kolom TEXT (sehingga memanfaatkan ROWID default).

Tabel 2 (kolom AI) dibuat menggunakan _id INTEGER PRIMARY KEY AUTOINCREMENT selain dua kolom TEXT.

Tabel 3 (Tidak ada kolom AI) dibuat menggunakan _id INTEGER PRIMARY KEY selain dua kolom TEXT.

Jadi Tabel 2 menggunakan algoritma pemilihan ROWID yang sedikit berbeda untuk sisipan.

Empat perangkat yang digunakan adalah :-

  • (1) Perangkat yang diemulasi Genymotion (Tablet Khusus - 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)

    Hasil yang saya peroleh adalah :-

Hasil lebih baik ketika semuanya dijalankan hanya dalam 1 transaksi (yaitu beginTransaction(); sebelum sisipan apa pun, dengan setTransactionSuccessful(); dan endTransaction(); setelah semua sisipan (untuk semua tabel yaitu seluruh 150.000 sisipan), mis. :-

Perbandingan kedua tabel, menyoroti manfaat penggunaan transaksi terhadap kinerja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android:Bagaimana cara meminta ulang Kursor untuk menyegarkan ListView setelah menghapus baris basis data?

  2. 5 Cara Menjalankan Script SQL dari File di SQLite

  3. cara mendapatkan gambar dari drawable sesuai dengan namanya di database sqlite dan kemudian menampilkannya dalam tampilan daftar

  4. Sinonim dan Contoh Wordnet sqlite

  5. SQLite - Ekspor Data ke File CSV