gpt4 book ai didi

ios - 通过定义索引提高 iOS 上 Sqlite DB 的性能?

转载 作者:行者123 更新时间:2023-11-29 13:50:14 24 4
gpt4 key购买 nike

我的表代表一个层次结构,包含以下列:

int ID (PK, unique, not null)
int ParentID
int MasterID (not null)
smallint Type (not null)
varchar(255) Name

我需要通过以下方式查询此数据库:

  • 通过ID获取一个条目
  • 获取项目的所有子项(按 ParentID 查询并限制为一个特定的 MasterID)
  • 获取特定类型的项目的所有子项

我最好在此 Sqlite 数据库上定义哪些索引?另外值得注意的是:我需要插入相当多的记录(删除属于特定 MasterID 的所有内容,然后插入大约 20000 行)。我认为定义许多索引会降低性能,对吗?目前我一次插入 500 条记录并将其包装在“BEGIN”和“END”中。

还有哪些其他设置我应该应用于数据库,特别是在 iOS 场景中?

最佳答案

您定义的索引将直接受到您正在查找的键的影响。作为一般规则,关系中的任何内容(外键)都适合放置索引。乍一看,我建议索引您的 int 数据类型,因为它很便宜。但请记住,只有在增加性能时才建立索引。在这种情况下,测试是必经之路。

您可能会添加索引,但事实证明它只会减慢您的速度(索引会减慢写入操作,但永远不会减慢读取速度)。最好在各种配置下进行测试。没有关于如何创建索引的包罗万象的方法。如果您发布正在运行的查询,我们可能会提供更多见解。

最后,保持索引尽可能窄(即 - 不要在多个列上创建索引,除非您已经进行了大量测试并发现它的性能最高)

关于ios - 通过定义索引提高 iOS 上 Sqlite DB 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5122011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com