我有最大值 我的数据库中有600000个Realm对象.我通过id(int)=,uuid =和time(int)<=进行查询,结果按时间排序.我是否应该对某些字段使用@Index注释,并可能将ID从Integer更改为String?查询是否会变慢,因为我无法索引时间字段并且不能有多字段索引?Sqlite能更好地满足我的需求吗?
另外,如果我一次将大量对象存储到数据库中,我应该为所有对象使用一个事务还是为每个对象创建一个新事务?大型事务占用多少内存,并且在为每个对象创建新事务时是否存在性能损失?
数据库将位于Android设备的外部存储(存储卡)中.
来自这里王国的克里斯蒂安。关于@Index,我们很快也会为整数添加它。如果您担心速度,我可能会对不同的选项进行基准测试,看看哪种方法更适合您,因为在一般情况下回答这些问题相当困难。
对于事务,在一个事务内尽可能多地进行批处理通常会更快,因为创建和提交事务会产生相关开销,但事务内的所有内容都必须适合内存。因此,根据数据集的大小,可能必须将其分解为较小的批次。再次进行小型概念验证可能是了解哪种方法最适合您的具体情况的最佳方法。
| 归档时间: |
|
| 查看次数: |
3649 次 |
| 最近记录: |