Android 9,
SQLiteDatabase
bir veritabanının kendi verilerini kullanmasına olanak tanıyan
journal_mode=WAL
en fazla bir tane tutma davranışı korunur
bağlantı sayısı.
Bir uygulamanın veritabanı için Uyumluluk WAL'i varsayılan olarak etkindir. uygulamada aşağıdakilerden biri vardır:
-
SQLiteDatabase.enableWriteAheadLogging
veyadisableWriteAheadLogging
- Çağrı yaparak açıkça istenen günlük modu
SQLiteDatabase.OpenParams.setJournalMode(String mode)
.
WAL günlüğü modunun etkinleştirilmesi, ve yazma miktarındaki azalmayı ölçer. Örneğin, bir ext4'te sayesinde WAL, yazma hızında 4 kat artış sağlayabilir.
Uyumluluk WAL'i varsayılan olarak etkindir ve ek bir bazı ipuçları vereceğim.
Uyumluluk WAL'sini devre dışı bırak
Uyumluluk WAL modunu devre dışı bırakmak için,
db_compatibility_wal_supported
yapılandırma kaynağı.
Örnek:
<bool name="db_compatibility_wal_supported">false</bool>
WAL'nin belirtildiği yapılandırmalarda Uyumluluk WAL'yi devre dışı bırakmak günlük modu, geleneksel geri alma özelliğine kıyasla bir performans avantajı sağlamaz günlük modlarında kullanılabilir. Örneğin, bir F2FS dosya sisteminde SQLite desteklese de ve DELETE günlüğü performansı WAL ile benzerse, WAL Yazma sayısını% 10'dan %15'e çıkarabilirsiniz.
Doğrulama
Uyumluluk WAL modunu doğrulamak için şu komutu çalıştırın: CTS testleri CtsDatabaseTestCases modülünden yararlanın. CTS testleri beklenen sonuç etkinleştiğini belirten bir uyarı alır.