我注意到Realm支持索引属性。但并不是所有的数据库系统都支持这一点(或者默认情况下没有显式声明)。
请解释为什么需要它,以及与使用主键有什么不同。然后,和另一个允许加速查询。但是为什么不只使用主键呢?
显然,可以对多个属性进行索引,但为什么要这样做呢?也就是说,我并不代表真正的问题,在那里没有索引不能做的事情(或者也许,但从编程的角度来看,它是令人厌恶的)。给出几个简单解释索引优势的任务示例:它是如何在没有索引的情况下发生的,以及在有索引的情况下发生的。结果是显而易见的,“在脸上”。
我使用Swift。
为我的英文٩(◕‿◕)۶道歉
发布于 2016-06-05 22:42:27
我认为,大多数其他数据库系统都需要显式声明,与Realm一样。
(例如MySQL CREATE TABLE test(id int, no int, INDEX(id,no));或CREATE INDEX id_index ON test(id); ALTER TABLE test ADD INDEX id_index(id);、SQLite CREATE INDEX nameindex ON user(name);)
因为索引是空间和时间之间的折衷,所以您在每个INSERT、UPDATE和DELETE查询上牺牲了一些额外的磁盘空间和一点CPU开销,以使大多数(如果不是全部)查询速度更快。
在大多数数据库系统中,创建索引需要显式声明。选择在哪些列上创建索引是程序员的责任。
领域也是一样的。对属性进行索引将大大加快查询速度,在查询中比较属性是否相等(即=和IN运算符),但代价是插入速度较慢。
https://realm.io/docs/swift/latest/#indexed-properties
在大多数移动应用程序中,由于搜索比更新执行得更多,因此索引在大多数情况下都工作得很好。
https://stackoverflow.com/questions/37631082
复制相似问题