Android Room Entity 为某个字段添加索引

更新日期: 2021-02-18 阅读次数: 148 字数: 207 分类: Android

担心 Android 本地 SQLite 数据库存储数据过多时,造成查询效率下降,所以想给字段加上索引。

添加索引示例

例如,我想给待办事项这个表(todos)的完成状态字段(done)添加索引。

设置 indices 即可:

@Entity(
    tableName = "todos",
    indices = [Index(value = ["done", ])]
)
data class Todo(
    var title: String,
    var content: String,
) {
    @PrimaryKey(autoGenerate = true) var id: Int = 0
    var done: Int = 0

    override fun toString() = title
}

添加唯一索引

如果是想添加唯一索引,需要使用 unique 参数:

indices = [Index(value = ["done", ], unique = true)]

当然,目前这个场景并不需要。

indices 是什么意思

indices 是 index 的复数形式。即,索引列表。

第一次知道 indices 这个词。。。第一眼跟 slice 混了。

参考

  • https://developer.android.com/training/data-storage/room/defining-data#column-indexing
领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

爱评论不评论

近期节日

查看更多节日