Android有些关于sqlite

时间:2016-05-09 21:37:18

标签: android sqlite

我将为我的项目工作sqlite。也许db有一个表和~40k行。我对此有一些疑问。

  • 当我使用SQLiteDatabase.openDatabase()时,所有行都进入内存?或者行地址可能吗?(怕大的内存问题因为40k行)

  • 当查询方法然后在内存上搜索?还是在db文件上?

  • SQLiteDatabase.openDatabase()引用我用这个用静态是否有问题?

  • 最后~40k行这是内存性能等问题吗?

2 个答案:

答案 0 :(得分:3)

  

当我使用SQLiteDatabase.openDatabase()时,所有行都进入内存?

不,这就是数据库的重点。

  

当查询方法然后在内存上搜索?还是在db文件上?

查询只会暂时加载所需的数据以应用给定的过滤器。甚至reult都没有完全加载到内存中(除非你使用返回的Cursor这样做)。

  

SQLiteDatabase.openDatabase()引用我用这个用静态是否有问题?

可能不是,但您应该避免在流程的整个生命周期内保持数据库处于打开状态。

  

最后~40k行这是内存性能等问题吗?

对于数据库来说,这不是一个很大的数字。这肯定没问题。

答案 1 :(得分:1)

SQLite只有five data types,您可以计算大致的尺寸。

通过查询获得带窗口(缓冲区)的光标(模式),大小可能是1mb

android matters的版本。

最后,分析可以显示真实情况。