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

Perilaku Android SQLite Journal berubah?

@CL benar, mode jurnal tampaknya berubah tergantung pada level API (mungkin juga berubah oleh pabrikan?).

Namun, untuk referensi di masa mendatang, saya telah menanyakan database untuk journal_mode di beberapa level API dan hasilnya adalah:

  • Android 2.3.7 (API 10) =hapus
  • Android 4.0.4 (API 15) =terpotong
  • Android 4.1.1 (API 16) =bertahan
  • Android 4.3.0 (API 18) =bertahan
  • Android 4.4.4 (API 19) =bertahan
  • Android 5.0.0 (API 21) =bertahan
  • Android 5.1.0 (API 22) =bertahan

Kode untuk mendapatkan mode jurnal:

Cursor c = db.rawQuery("PRAGMA journal_mode;", null);
c.moveToFirst();
String journalMode = c.getString(c.getColumnIndex("journal_mode"));

Tentang mode jurnal:

Mode penjurnalan DELETE adalah perilaku normal. Dalam mode DELETE, jurnal rollback dihapus pada akhir setiap transaksi. Memang, operasi penghapusan adalah tindakan yang menyebabkan transaksi dilakukan.

Mode penjurnalan TRUNCATE melakukan transaksi dengan memotong jurnal rollback ke panjang nol alih-alih menghapusnya. Pada banyak sistem, memotong file jauh lebih cepat daripada menghapus file karena direktori yang berisi tidak perlu diubah.

Mode penjurnalan PERSIST mencegah jurnal rollback dihapus pada akhir setiap transaksi. Sebaliknya, tajuk jurnal ditimpa dengan nol. Ini akan mencegah koneksi database lain memutar jurnal kembali. Mode penjurnalan PERSIST berguna sebagai pengoptimalan pada platform di mana menghapus atau memotong file jauh lebih mahal daripada menimpa blok pertama file dengan nol.

Info lebih lanjut



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. simpan nilai panjang di database android

  2. Pilih beberapa kolom dari dua tabel menggunakan greendao

  3. Mendapatkan NoClassDefFoundError saat mencoba menggunakan Proguard dan SQLcipher di Android

  4. Bagaimana Replace() Bekerja di SQLite

  5. SQLite JSON_EACH()