Android中的SQLite数据库操作是否在内存中?
我正在我的应用程序中创建一个Android中的SQLite数据库操作是否在内存中?,android,database,sqlite,memory,database-performance,Android,Database,Sqlite,Memory,Database Performance,我正在我的应用程序中创建一个数据存储库层,该层依次提供来自两个源的数据,即网络API调用或从本地存储获取数据。当有对数据存储库层的请求时,我首先需要检查数据是否存在于本地存储中。如果没有,我就调用我的API来获取数据。为了检查数据是否在本地存储中,我考虑了两种实现方法: 在应用程序启动时,我将数据库中的所有数据加载到内存中(例如列表、地图等),然后每当我必须检查本地存储中是否存在数据时,我都会从内存中进行检查。这可能是我之前也遇到过的一个问题。当应用程序在后台时,Android系统可能会清除分
数据存储库层
,该层依次提供来自两个源的数据,即网络API调用或从本地存储获取数据。当有对数据存储库层的请求时,我首先需要检查数据是否存在于本地存储中。如果没有,我就调用我的API来获取数据。为了检查数据是否在本地存储中,我考虑了两种实现方法:
- 在应用程序启动时,我将数据库中的所有数据加载到内存中(例如列表、地图等),然后每当我必须检查本地存储中是否存在数据时,我都会从内存中进行检查。这可能是我之前也遇到过的一个问题。当应用程序在后台时,Android系统可能会清除分配的内存,以便为其他应用程序提供内存。这使事情对我来说变得复杂
- 每当我想检查本地存储中是否存在数据时,我都会直接对SQL表进行查询,并根据查询结果做出决定。这是一种比上述情况更精简、更清洁的解决方案。我唯一担心的是演出的热播我想知道SQLite数据库是否在加载到内存后运行?如果是的话,那么我在上面创建的数据存储层是无用的如果不是,继续为每个小数据请求查询SQLite数据库是否安全
SQLite缓存一些数据,只要有足够的内存,Android操作系统就会将数据库文件保存在其文件缓存中
因此,在使用SQLite时,应用程序的性能会根据可用内存自动优化。您可能会发现这是两者的混合,也可能是这两者的混合