首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域中的索引属性

领域中的索引属性
EN

Stack Overflow用户
提问于 2016-06-04 21:58:13
回答 1查看 4.5K关注 0票数 3

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

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

显然,可以对多个属性进行索引,但为什么要这样做呢?也就是说,我并不代表真正的问题,在那里没有索引不能做的事情(或者也许,但从编程的角度来看,它是令人厌恶的)。给出几个简单解释索引优势的任务示例:它是如何在没有索引的情况下发生的,以及在有索引的情况下发生的。结果是显而易见的,“在脸上”。

我使用Swift。

为我的英文٩(◕‿◕)۶道歉

EN

回答 1

Stack Overflow用户

发布于 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);)

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

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

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

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

在大多数移动应用程序中,由于搜索比更新执行得更多,因此索引在大多数情况下都工作得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37631082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档