アプリ用の互換性 WAL(write-ahead log 書き込み)
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 9 では、SQLiteDatabase の特別なモードである互換性 WAL(ログ先行書き込み)が導入されています。これにより、データベースあたり最大 1 つの接続を維持しながら、データベースで journal_mode=WAL
を使用できます。
互換性 WAL は、アプリが次のいずれかの条件に該当しない限り、デフォルトでアプリのデータベースに対して有効になります。
SQLiteDatabase.enableWriteAheadLogging
または disableWriteAheadLogging
を呼び出して、ログ先行書き込みを有効または無効にした
SQLiteDatabase.OpenParams.setJournalMode(String mode)
を呼び出して、ジャーナル モードを明示的にリクエストした
WAL ジャーナル モードを有効にすると、パフォーマンスが大幅に改善されて書き込み量が減少します。たとえば、ext4 ファイル システムでは、WAL によって書き込み速度が 4 倍に向上します。
互換性 WAL はデフォルトで有効になっており、追加の実装は不要です。
互換性 WAL の無効化
互換性 WAL モードを無効にするには、db_compatibility_wal_supported
構成リソースをオーバーレイします。
例:
<bool name="db_compatibility_wal_supported">false</bool>
WAL ジャーナル モードを使用しても従来のロールバック ジャーナル モードよりパフォーマンスが向上しない構成では、互換性 WAL を無効にすることをおすすめします。たとえば、F2FS ファイル システムでは、SQLite でアトミック書き込みがサポートされており、DELETE ジャーナルのパフォーマンスは WAL と同程度ですが、WAL によって書き込み量が 10%~15% 増加する可能性があります。
検証
互換性 WAL モードを検証するには、CtsDatabaseTestCases モジュールの CTS テストを実施します。互換性 WAL が有効になっている場合、想定される動作が CTS テストにより検証されます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-04-26 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-04-26 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-04-26 UTC。"]]