【发布时间】:2016-09-22 04:18:38
【问题描述】:
我有最大值。我的数据库中有 600000 个领域对象。我通过 id(int)=、uuid= 和 time(int)
另外,如果我一次将大量对象存储到数据库中,我应该为所有对象使用一个事务还是为每个对象创建一个新事务?大型事务会消耗多少内存,为每个对象创建新事务时是否会影响性能?
数据库将在 Android 设备的外部存储(存储卡)中。
【问题讨论】:
我有最大值。我的数据库中有 600000 个领域对象。我通过 id(int)=、uuid= 和 time(int)
另外,如果我一次将大量对象存储到数据库中,我应该为所有对象使用一个事务还是为每个对象创建一个新事务?大型事务会消耗多少内存,为每个对象创建新事务时是否会影响性能?
数据库将在 Android 设备的外部存储(存储卡)中。
【问题讨论】:
您绝对应该在任何查询中使用的任何字段上使用@Index。
大大提高了性能/查询速度。
【讨论】:
@Index。一个在dateTime,一个在username。
来自Realm的Christian。关于@Index,我们很快也会为整数添加它。如果您担心速度,我可能会对不同的选项进行基准测试,看看哪种方法更适合您,因为在一般情况下回答这些问题非常困难。
关于事务,在一个事务中尽可能多地进行批处理通常更快,因为创建和提交事务会产生开销,但事务中的所有内容都必须适合内存。因此,根据数据集的大小,可能必须将其分成更小的批次。再次进行小型概念验证可能是查看在您的特定情况下最有效的最佳方法。
【讨论】: