SQLite
 sql >> база данни >  >> RDS >> SQLite

Променено ли е поведението на Android SQLite Journal?

@CL е прав, режимът на дневника изглежда се променя в зависимост от нивото на API (може би се променя и от производителя?).

Въпреки това, за бъдеща справка, запитах базата данни за journal_mode в няколко нива на API и резултатите са:

  • Android 2.3.7 (API 10) =изтриване
  • Android 4.0.4 (API 15) =съкращаване
  • Android 4.1.1 (API 16) =постоянство
  • Android 4.3.0 (API 18) =постоянство
  • Android 4.4.4 (API 19) =постоянство
  • Android 5.0.0 (API 21) =постоянство
  • Android 5.1.0 (API 22) =постоянство

Код за получаване на режим на дневник:

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

Относно режимите на журнала:

Режимът на дневник DELETE е нормално поведение. В режим DELETE дневникът за връщане се изтрива при приключване на всяка транзакция. Действително, операцията изтриване е действието, което кара транзакцията да се извърши.

Режимът на TRUNCATE записва транзакции, като съкращава дневника за връщане до нулева дължина, вместо да го изтрива. На много системи съкращаването на файл е много по-бързо от изтриването на файла, тъй като не е необходимо да се променя съдържащата го директория.

Режимът на дневник PERSIST предотвратява изтриването на дневника за връщане в края на всяка транзакция. Вместо това заглавката на дневника се презаписва с нули. Това ще попречи на други връзки към базата данни да върнат дневника обратно. Режимът на дневник PERSIST е полезен като оптимизация на платформи, където изтриването или съкращаването на файл е много по-скъпо от презаписването на първия блок от файл с нули.

Повече информация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бърза публикация за SQLite UPSERT и новата клауза RETURNING.

  2. Трябва ли да има един SQLiteOpenHelper за всяка таблица в базата данни?

  3. Връщане на масив от низове и го използвайте в AutoCompleteTextview

  4. Създайте временна таблица в SQLite

  5. SQLite JSON_TREE()