我将为我的项目工作sqlite。也许db有一个表和~40k行。我对此有一些疑问。
当我使用SQLiteDatabase.openDatabase()时,所有行都进入内存?或者行地址可能吗?(怕大的内存问题因为40k行)
当查询方法然后在内存上搜索?还是在db文件上?
SQLiteDatabase.openDatabase()引用我用这个用静态是否有问题?
最后~40k行这是内存性能等问题吗?
答案 0 :(得分:3)
当我使用SQLiteDatabase.openDatabase()时,所有行都进入内存?
不,这就是数据库的重点。
当查询方法然后在内存上搜索?还是在db文件上?
查询只会暂时加载所需的数据以应用给定的过滤器。甚至reult都没有完全加载到内存中(除非你使用返回的Cursor这样做)。
SQLiteDatabase.openDatabase()引用我用这个用静态是否有问题?
可能不是,但您应该避免在流程的整个生命周期内保持数据库处于打开状态。
最后~40k行这是内存性能等问题吗?
对于数据库来说,这不是一个很大的数字。这肯定没问题。
答案 1 :(得分:1)
SQLite只有five data types,您可以计算大致的尺寸。
通过查询获得带窗口(缓冲区)的光标(模式),大小可能是1mb。
android matters的版本。
最后,分析可以显示真实情况。