领域中的索引属性

Vit*_*lko 3 indexing realm indexeddb swift swift2

我注意到 Realm 支持索引属性。但并非所有数据库系统都支持这一点(或者默认情况下没有显式声明)。

\n\n

请解释为什么需要它,以及使用主键有何不同。然后,另一个允许加速查询。但为什么不只使用主键呢?

\n\n

很明显,可以对多个属性建立索引,但为什么要这样做呢?也就是说,我并不代表真正的问题,没有使用索引就无法做到(或者也许,但在编程方面这会令人厌恶)。给出几个任务示例,简单地解释索引的优点:没有索引和有索引时它是如何发生的。结果很明显,“在脸上”。

\n\n

我用的是斯威夫特。

\n\n

对不起我的英语 \xd9\xa9(\xe2\x97\x95\xe2\x80\xbf\xe2\x97\x95)\xdb\xb6

\n

kis*_*umi 5

我认为大多数其他数据库系统都需要显式声明,就像 Realm 一样。

(例如 MySQLCREATE 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);

因为索引是空间和时间之间的权衡,所以您在每个 、INSERTUPDATE查询上牺牲了一些额外的磁盘空间和一点 CPU 开销,DELETE以使大多数(如果不是全部)查询速度更快。

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

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

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

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