Mit Android 9 wird ein spezieller Modus
SQLite-Datenbank
Kompatibilitäts-Write-Ahead-Logging (WAL), mit dem eine Datenbank
journal_mode=WAL
, wobei maximal ein Wert beibehalten wird
Verbindung pro Datenbank.
Kompatibilitäts-WAL ist standardmäßig für die Datenbank einer App aktiviert, es sei denn, das App entweder:
- Write-Ahead-Logging durch folgenden Aufruf aktivieren oder deaktivieren
SQLiteDatabase.enableWriteAheadLogging
oderdisableWriteAheadLogging
- Ausdrücklich angeforderter Journalmodus durch Aufruf von
SQLiteDatabase.OpenParams.setJournalMode(String mode)
Die Aktivierung des WAL-Journalmodus kann zu einer erheblichen Verbesserung und die Anzahl der Schreibvorgänge reduzieren. Beispiel: Bei einer ext4 kann WAL zu einer 4-fachen Verbesserung der Schreibgeschwindigkeit führen.
Kompatibilitäts-WAL ist standardmäßig aktiviert und erfordert keine zusätzliche Implementierung.
Kompatibilitäts-WAL deaktivieren
Um den Kompatibilitäts-WAL-Modus zu deaktivieren, blenden Sie das
db_compatibility_wal_supported
config-Ressource an.
Beispiel:
<bool name="db_compatibility_wal_supported">false</bool>
Sie können Kompatibilitäts-WAL für Konfigurationen deaktivieren, in denen die WAL Der Journalmodus bietet keinen Leistungsvorteil gegenüber einem herkömmlichen Rollback. Journalmodi. Beispiel: Bei einem F2FS-Dateisystem, obwohl SQLite atomare Schreibvorgänge und die Leistung des DELETE-Journals ähnlich wie WAL ist, kann WAL die Anzahl der Schreibvorgänge um 10 bis 15 % erhöhen.
Zertifizierungsstufe
Führen Sie den folgenden Befehl aus, um den Kompatibilitäts-WAL-Modus zu validieren: CTS-Tests aus dem Modul CtsDatabaseTestCases. CTS-Tests überprüfen die bei aktiviertem Kompatibilitäts-WAL.