【发布时间】:2020-02-19 15:29:06
【问题描述】:
在没有明确排序的情况下查询领域数据库时,我可以依赖结果中的给定顺序吗?是插入顺序吗?首要的关键?最近更新时间?示例如下:
var results = Realm.All<MyRecord>().Where(i => i.MyProp == "in the wild wild west");
foreach (var result in results)
{
// do a thing with the record
}
我需要一个一致的顺序,但我不想通过“明确”的顺序来增加开销,因为这会增加搜索开销,只要领域的结果是一致的(假设数据库没有变化)我很高兴使用领域给出的默认顺序。
【问题讨论】:
-
添加单个属性来保证排序是极少量的数据,与保证您想要的顺序相比,不会真正增加任何有影响的开销。
-
虽然我在很大程度上同意你的观点,但我正在批量插入大约 4m 记录,这种数据量的开销确实会变得很明显,如果可以添加这个,那就太可惜了依靠,如果有必要,我真的很感激理解
-
我不会依赖 Realm 的“自然排序”来做任何事情。更重要的是,如果曾经插入或修改过数据,那么排序就会消失。所以有两件事 List 属性可以保证保持它们的插入顺序。 所以你可以依靠它。部分问题还源于在没有设置顺序的情况下重新读取数据:出于性能原因,不保证保留结果插入顺序。这意味着当您读取结果时,除非您定义它,否则没有保证顺序。
-
干杯让我明白了,不幸的是,我将选择显式排序,这可能意味着我正在使用的数据集大小的查询开销。谢谢