【问题标题】:android database indexing安卓数据库索引
【发布时间】:2011-08-28 13:54:20
【问题描述】:

我的 android 应用程序需要经常访问 sqlite 数据库。我在想是否有一种方法可以索引数据库以更快地访问数据。有人在android中做过数据库索引吗?请建议我这样做的最佳方法?

是否真的需要,因为我们在本地设备上拥有所有数据库,甚至每次运行查询都不会花费太多时间。

Rgds, 萨潘

【问题讨论】:

    标签: android database indexing


    【解决方案1】:

    SQLite 支持 CREATE INDEX 语句:

    http://www.sqlite.org/lang_createindex.html

    例如:

    create index foo_bar_idx on foo(bar);
    

    要深入讨论查询规划器何时决定使用索引,请尝试使用 PostgreSQL 文档:

    http://www.postgresql.org/docs/9.0/static/indexes.html

    它在 SQLite 中不会以完全相同的方式工作,但总体思路是相同的:

    • 对于小型表,读取整个表比扫描索引要快。
    • 对于排序依据/限制,请在排序中使用的字段上创建索引。
    • 对于连接/位置,您需要在连接/位置中使用的字段上的索引。

    【讨论】:

    • 因此,如果我为所有表创建索引,那么每次我进行 sqlite 查询时,它只会搜索索引并返回更快的结果。这是你的意思吗?
    • 不:我的意思是,如果你创建一个索引,它只会在规划者认为这样做有用的情况下使用。考虑阅读 postgres 文档的链接。
    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多