我注意到 Realm 支持索引属性。但并不是所有的数据库系统都支持这个(或者默认情况下没有明确声明)。
请解释为什么需要它,以及与使用主键不同的地方。然后,另一个允许加速查询。但是,为什么不只使用主键呢?
很明显可以索引多个属性,但为什么要这样做呢?也就是说,我不代表真正的问题,在那里没有使用索引做不到(或者也许,但在编程方面会令人厌恶)。举几个简单解释索引优点的任务示例:它是如何在没有索引和有索引的情况下发生的。结果是显而易见的,“在脸上”。
我使用 Swift。
对不起我的英语٩(◕‿◕)6
最佳答案
我认为大多数其他数据库系统都需要显式声明,就像 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
查询使大多数(如果不是全部)查询更快。
在大多数数据库系统中,创建索引需要显式声明。选择在哪些列上创建索引是程序员的责任。
境界也一样。索引属性将大大加快比较属性是否相等的查询(即 =
和 IN
运算符),但代价是插入速度较慢。
https://realm.io/docs/swift/latest/#indexed-properties
在大多数移动应用程序中,由于执行的搜索多于更新,因此索引在大多数情况下都运行良好。
关于swift - Realm 中的索引属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631082/