swift - Realm 中的索引属性

标签 swift indexing swift2 realm indexeddb

我注意到 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);)

因为索引是空间和时间之间的权衡,所以在每个 INSERTUPDATEDELETE 查询使大多数(如果不是全部)查询更快。

在大多数数据库系统中,创建索引需要显式声明。选择在哪些列上创建索引是程序员的责任。

境界也一样。索引属性将大大加快比较属性是否相等的查询(即 =IN 运算符),但代价是插入速度较慢。

https://realm.io/docs/swift/latest/#indexed-properties

在大多数移动应用程序中,由于执行的搜索多于更新,因此索引在大多数情况下都运行良好。

关于swift - Realm 中的索引属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631082/

相关文章:

ios - 如何在 Swift 中将 UnsafeMutablePointer<AudioBufferList> 转换为 AudioBuffer?

ios - 单击时如何更改标签中的字母?

在 Julia 中使用变量索引 Dataframe

swift - 从字符串中删除\\u{e2} 个字符

mysql - 在大表上添加索引需要永远

Python Pandas - 使用特定顺序重新索引数据框

swift - 从原始类中访问 swift 类扩展方法

ios - 返回上一个 View Controller 不起作用

ios - 用户的 Firebase Analytics 屏幕时间

ios - 如何检查我的 applicationIconBadgeNumber 值?