状況をできるだけ単純化しようとしたので、あまりリアルに見えません。申し訳ありません。しかし、それは本当の懸念に基づいています。
ユーザーに現在の温度を表示する小さな Android アプリケーションがあるとします。温度は毎秒変化しており、アプリケーションは常に動作しています。
また、アプリには「監査」DB テーブルがあります。
CREATE TABLE TemperatureAudit (
secondsFrom1970 INTEGER not null,
temperature INTEGER not null);
このアプリケーションを 1 年使用すると、監査テーブルは非常に大きくなります。そして、本当に必要でない限り、切り捨てたくないと想像してみましょう。
sqlite が Android でどのように動作するかを知っている人への質問: 心配する必要はありますか?
- 使用しない場合、sqlite はこの大きなテーブルを RAM にロードしようとしますか? たとえば、別のテーブルから選択する場合。
- 「温度> 0のTemperatureAuditからカウントを選択」しようとすると、sqliteはこの大きなテーブルを次々にロードしますか? それとも、テーブル全体を RAM に一度にロードしますか?
- sqlite がメモリ割り当てをあまりケチっていない場合、どうすればよいですか? このテーブルを別のデータベースに移動すると、最初の問題は解決しますか? テーブルのパーティショニングは 2 番目に役立ちますか?