我正在开展一个项目,用户可以搜索不同城市的图像。
假设用户搜索了德里,然后保存结果,以便下次用户在没有互联网连接时搜索同一城市时,应显示之前保存的图像(本例中为德里)。
请建议一个好方法,在sqlite和缓存之间混淆
答案 0 :(得分:0)
如果图像高于100k,则应将它们保存为文件,并将路径保存到数据库中的文件中。如果它们大约在100k左右或更低,则可以将它们保存为数据库中的字节数组。
SQLite本身就是自己的缓存,大约100k的边界是基于35% Faster Than The Filesystem的结果(即SQLite可以更有效地将数据存储为字节数组(BLOBS)),还有一个事实是对于Android的2M光标窗口的限制,所以如果从数据库中提取数据,如果一行超过这个,则会导致失败。
缓存和SQlite之间的区别在于SQLite是持久的,即数据存储到磁盘。缓存基本上是将数据保存在内存中,这不是持久性的。但是,SQLite本身使用缓存。看看PRAGMA schema.cache_size; 。